Plugin Directory

Changeset 2387080


Ignore:
Timestamp:
09/23/2020 12:09:11 PM (6 years ago)
Author:
ticketrilla
Message:
  • Added notifications for Telegram
  • Fixed minor issues
Location:
ticketrilla-server
Files:
34 edited

Legend:

Unmodified
Added
Removed
  • ticketrilla-server/tags/v.1.0.3/includes/admin/assets/css/main.css

    r2172146 r2387080  
    1221412214  background-color: #fff;
    1221512215}
     12216#ttls__settings-menu {
     12217  position: static;
     12218  top: 64px;
     12219}
    1221612220.ttls__settings-inner.affix {
    1221712221  top: 24px;
     
    1271212716  left: 0;
    1271312717}
     12718.ttls__label-info-hidden ol {
     12719    margin-top: 6px;
     12720    margin-bottom: 0;
     12721}
    1271412722.ttls .ttls__tickets-responses-body ul {
    1271512723  list-style-position: inside;
  • ticketrilla-server/tags/v.1.0.3/includes/admin/assets/js/ticketrilla.js

    r2172146 r2387080  
    6868        var $settingMenuParent = $("#ttls__settings-menu").parent();
    6969        $(window).on("scroll", function () {
    70             if ( $(window).scrollTop() + 64 > $settingMenuParent.offset().top ) {
     70            if ( $( window ).width() > 992 && $(window).scrollTop() + 64 > $settingMenuParent.offset().top ) {
    7171                var marginTop = $(window).scrollTop() - $settingMenuParent.offset().top + 64;
    7272
    7373                if ( $settingMenuParent.next().height() > $settingMenu.height() + marginTop ) {
    74                     $settingMenu.css("margin-top", marginTop );
     74                    $settingMenu.css("position", "fixed");
     75                    var $parentWidth = $settingMenuParent.width();
     76                    $settingMenu.css("width", $parentWidth);
    7577                }
    7678
    7779            } else {
    78                 $settingMenu.css("margin-top", 0 );
     80                $settingMenu.css("position", "static");
    7981            }
    8082        });
     
    8991                }, 400);
    9092            }
     93        });
     94       
     95        $(window).on("resize", function () {
     96            var $parentWidth = $settingMenuParent.width();
     97            $settingMenu.css("width", $parentWidth);
    9198        });
    9299    }
     
    409416                        $(".ttls__tickets-responses").append( response.data.box );
    410417                    }
     418                    wp.heartbeat.connectNow();
    411419                } else {
    412420                    ttlsAddAlert( "danger", "",response.data.message );
     
    985993
    986994        }
     995       
     996        $(document).on('heartbeat-tick', function(e, data){
     997            var countEl = $('.ttls__pending-tickets-count');
     998            if(!countEl.length) return;
     999   
     1000            if(data.ttls_pending_tickets_count){
     1001                countEl.text(data.ttls_pending_tickets_count).removeClass('count-0');
     1002            } else {
     1003                countEl.addClass('count-0');
     1004            }
     1005        });
    9871006
    9881007}(jQuery));
     
    10031022            "<span aria-hidden=\"true\">&times;</span></button>" +
    10041023            "<strong>" + title + "</strong> " + message + "</div>";
    1005     $(alert).prependTo( ".ttls__alerts" ).fadeIn(500).delay(2000).fadeOut(400).queue(function() { $(this).remove(); });
     1024    jQuery(alert).prependTo( ".ttls__alerts" ).fadeIn(500).delay(2000).fadeOut(400).queue(function() { jQuery(this).remove(); });
    10061025}
    10071026
    10081027function ttlsUpdateTicketResponseHandler( response ) {
    10091028    if ( response.success ) {
     1029        wp.heartbeat.connectNow();
    10101030        ttlsAddAlert( "success", "", response.data.message );
    10111031        if ( getParameterByName("order") == "DESC" ) {
    1012             $(".ttls__tickets-responses").prepend( response.data.box );
     1032            jQuery(".ttls__tickets-responses").prepend( response.data.box );
    10131033        } else {
    1014             $(".ttls__tickets-responses").append( response.data.box );
     1034            jQuery(".ttls__tickets-responses").append( response.data.box );
    10151035        }
    10161036    } else {
  • ticketrilla-server/tags/v.1.0.3/includes/admin/core/class-enqueue.php

    r2172146 r2387080  
    4848                );
    4949                foreach ( $array_scripts as $key => $value ) {
    50                     wp_enqueue_script( "ttls_admin_{$key}", $this->js_url . $value, array( 'jquery', 'jquery-ui-datepicker' ), filemtime( TTLS_PATH . $this->js_path . $value ), true );
     50                    wp_enqueue_script( "ttls_admin_{$key}", $this->js_url . $value, array( 'jquery', 'jquery-ui-datepicker', 'heartbeat' ), filemtime( TTLS_PATH . $this->js_path . $value ), true );
    5151                }
    5252
  • ticketrilla-server/tags/v.1.0.3/includes/admin/core/class-page.php

    r2172146 r2387080  
    3535                // update used licenses
    3636                add_filter( 'ttls_check_option-ttls_active_licenses_standard', array( $this, 'check_active_licenses' ) );
     37                add_filter( 'ttls_check_option-ttls_product_description', array( $this, 'check_product_description' ) );
     38                add_filter( 'ttls_check_option-ttls_notifications_telegram_token', array( $this, 'check_notifications_telegram_token') );
     39                add_filter( 'ttls_check_option-ttls_notifications_telegram_chat_id', array( $this, 'check_notifications_telegram_chat_id') );
    3740            }
    3841
     
    116119                return $data;
    117120            }
     121           
     122            function check_product_description( $data ) {
     123                $data = wp_unslash( $data );
     124                return $data;
     125            }
     126           
     127            public function check_notifications_telegram_token( $data ) {
     128                $check = ttls_telegram_get_me( $data['value'] );
     129                if ( $check ) {
     130                    $check = json_decode( $check );
     131                }
     132                if ( empty( $check->ok ) || ! $check->ok ) {
     133                    return array( 'error' => esc_html__('Token is invalid', 'ttls_translate') );
     134                }
     135                return $data;
     136            }
     137           
     138            public function check_notifications_telegram_chat_id( $data ) {
     139                $token = get_option( 'ttls_notifications_telegram_token', '' );
     140               
     141                if ( ! $token ) {
     142                    return array( 'error' => esc_html__('First enter valid token', 'ttls_translate') );
     143                }
     144               
     145                $check = ttls_telegram_get_chat( $token, $data['value'] );
     146                if ( $check ) {
     147                    $check = json_decode( $check );
     148                }
     149                if ( empty( $check->ok ) || ! $check->ok ) {
     150                    return array( 'error' => esc_html__('Chat ID is invalid', 'ttls_translate') );
     151                }
     152                return $data;
     153            }
    118154
    119155            function update_profile(){
     
    240276             */
    241277            function primary_admin_menu() {
     278               
     279                $pending_tickets_count = get_option( 'ttls_pending_tickets_count' );
     280               
    242281                $this->subpages = apply_filters( 'ttls_admin_subpages', array(
    243282                    'ttls-dashboard'  => array(
     
    252291                        'parent_slug' => $this->slug,
    253292                        'page_title'  => esc_html__( 'Tickets', 'ttls_translate' ),
    254                         'menu_title'  => esc_html__( 'Tickets', 'ttls_translate' ),
     293                        'menu_title'  => esc_html__( 'Tickets', 'ttls_translate' ) . ( $pending_tickets_count ? sprintf( ' <span class="ttls__pending-tickets-count update-plugins">%d</span>', $pending_tickets_count ) : ' <span class="ttls__pending-tickets-count update-plugins count-0"></span>' ),
    255294                        'capability'  => 'ttls_developers',
    256295                        'menu_slug'   => $this->slug . '-tickets',
     
    307346                if ( ! empty( $this->subpages ) ) {
    308347                    foreach ( $this->subpages as $subpage ) {
     348                        $position = empty( $subpage['position'] ) ? null : $subpage['position'];
    309349                        add_submenu_page( $subpage['parent_slug'], $subpage['page_title'], $subpage['menu_title'],
    310                             $subpage['capability'], $subpage['menu_slug'], $subpage['function'] );
     350                            $subpage['capability'], $subpage['menu_slug'], $subpage['function'], $position );
    311351                    }
    312352                }
  • ticketrilla-server/tags/v.1.0.3/includes/admin/templates/page/ticketrilla-server-addons.php

    r2172146 r2387080  
    2525        <div class="ttls__cards">
    2626            <?php foreach ( $addon_list as $addon) {
    27                 if ( !empty( $addon->plugin ) AND is_plugin_active( $addon->plugin ) ) {
     27                if ( !empty( $addon->plugin ) AND is_plugin_active( (string) $addon->plugin ) ) {
    2828                    $installed_plugin = get_plugin_data( WP_PLUGIN_DIR.'/'.$addon->plugin );
    2929                    $active_addons .= '<tr>';
  • ticketrilla-server/tags/v.1.0.3/includes/admin/templates/page/ticketrilla-server-licences.php

    r2172146 r2387080  
    8787                                $tmp_u_d['rowspan'] = 1;
    8888                                $tmp_u_d['login'] = esc_html__('No owners', 'ttls_translate');
     89                                $tmp_u_d['name'] = '';
     90                                $tmp_u_d['email'] = '';
    8991                                $row_user_data[] = $tmp_u_d;
    9092                            }
  • ticketrilla-server/tags/v.1.0.3/includes/admin/templates/page/ticketrilla-server-settings.php

    r2172146 r2387080  
    2727                                <li><a href="#ttls__product" data-scroll><?php echo esc_html__('Product', 'ttls_translate'); ?></a></li>
    2828                                <li><a href="#ttls__ticket" data-scroll><?php echo esc_html__('Tickets', 'ttls_translate'); ?></a></li>
     29                                <li><a href="#ttls__notifications" data-scroll><?php echo esc_html__('Notifications', 'ttls_translate'); ?></a></li>
    2930                                <li><a href="#ttls__attachment" data-scroll><?php echo esc_html__('Attachments', 'ttls_translate'); ?></a></li>
    3031                                <li><a href="#ttls__password" data-scroll><?php echo esc_html__('Reset password', 'ttls_translate'); ?></a></li>
     
    478479                        </div>
    479480                    </form>
     481
     482                    <form action="#" id="ttls__notifications" class="ttls__settings-inner ttls-setting-form">
     483                        <div class="ttls__settings-inner-header">
     484                            <h4><?php echo esc_html__('New events notifications', 'ttls_translate'); ?></h4>
     485                        </div>
     486                        <div class="ttls__settings-inner-body">
     487                            <div class="row">
     488                                <div class="col-md-6">
     489                                    <div class="form-group">
     490                                        <div class="checkbox">
     491                                        <?php
     492                                            $input_id = 'ttls__notificationsSettings-telegram-enable';
     493                                            $input_name = 'ttls_notifications_telegram_enable';
     494                                        ?>
     495                                            <input type="hidden" name="<?php echo esc_attr( $input_name ); ?>" value="">
     496                                            <input
     497                                                id="<?php echo esc_attr( $input_id ); ?>"
     498                                                data-name="<?php echo esc_attr( $input_id ); ?>"
     499                                                name="<?php echo esc_attr( $input_name ); ?>"
     500                                                type="checkbox"
     501                                                value="true"
     502                                                class="form-control"
     503                                                <?php echo get_option($input_name, false) ? 'checked' : ''; ?>
     504                                            >
     505                                        <label for="<?php echo esc_attr( $input_id ); ?>">
     506                                            <?php echo esc_html__('Enable for Telegram', 'ttls_translate'); ?>
     507                                            <div class="ttls__label-info">
     508                                                <i class="fa fa-question-circle-o" aria-hidden="true"></i>
     509                                                <div class="ttls__label-info-hidden">
     510                                                    <?php echo esc_html__('If enabled then you get a message about new events on your Telegram', 'ttls_translate'); ?>
     511                                                </div>
     512                                            </div>
     513                                        </label>
     514                                           
     515                                        </div>
     516                                    </div>
     517                                </div>
     518                                <div class="col-md-6">
     519                                    <div class="form-group">
     520                                        <?php
     521                                            $input_id = 'ttls__notificationsSettings-telegram-token';
     522                                            $input_name = 'ttls_notifications_telegram_token';
     523                                        ?>
     524                                        <label for="<?php echo esc_attr( $input_id ); ?>">
     525                                            <?php echo esc_html__('Telegram token', 'ttls_translate'); ?>
     526                                            <div class="ttls__label-info">
     527                                                <i class="fa fa-question-circle-o" aria-hidden="true"></i>
     528                                                <div class="ttls__label-info-hidden">
     529                                                <?php echo esc_html__('For getting a token you must send for @BotFather next commands:', 'ttls_translate'); ?>
     530                                                    <ol>
     531                                                        <li>/newbot</li>
     532                                                        <li><?php echo esc_html__( 'name for your bot', 'ttls_translate' ); ?></li>
     533                                                        <li><?php echo esc_html__( "username for your bot with end in 'bot'", 'ttls_translate' ); ?></li>
     534                                                    </ol>
     535                                                <?php echo esc_html__('You get a token.', 'ttls_translate'); ?>
     536                                                </div>
     537                                            </div>
     538                                        </label>
     539                                        <div class="input-group">
     540                                            <span class="input-group-addon"><i class="fa fa-key"></i></span>
     541                                            <input
     542                                                id="<?php echo esc_attr( $input_id ); ?>"
     543                                                data-name="<?php echo esc_attr( $input_id ); ?>"
     544                                                name="<?php echo esc_attr( $input_name ); ?>"
     545                                                type="text"
     546                                                value="<?php echo esc_attr( get_option( $input_name, '' ) ); ?>"
     547                                                class="form-control"
     548                                                >
     549                                        </div>
     550                                    </div>
     551                                </div>
     552                                <div class="col-md-6">
     553                                    <div class="form-group">
     554                                        <?php
     555                                            $input_id = 'ttls__notificationsSettings-telegram-chatid';
     556                                            $input_name = 'ttls_notifications_telegram_chat_id';
     557                                        ?>
     558                                        <label for="<?php echo esc_attr( $input_id ); ?>">
     559                                            <?php echo esc_html__('Chat ID', 'ttls_translate'); ?>
     560                                            <div class="ttls__label-info">
     561                                                <i class="fa fa-question-circle-o" aria-hidden="true"></i>
     562                                                <div class="ttls__label-info-hidden">
     563                                                <?php echo esc_html__('For getting a Chat ID you have to:', 'ttls_translate'); ?>
     564                                                    <ol>
     565                                                        <li><?php echo esc_html__( 'create bot and to get a token', 'ttls_translate' ); ?></li>
     566                                                        <li><?php echo esc_html__( 'create new group and to add your bot in it', 'ttls_translate' ); ?></li>
     567                                                        <li><?php echo esc_html__( 'add bot @MyChatInfoBot on this group', 'ttls_translate' ) ?></li>
     568                                                        <li><?php echo esc_html__( '@MyChatInfoBot will give Chat ID and will leave the group', 'ttls_translate' ) ?></li>
     569                                                        <li><?php echo esc_html__( 'Chat ID may be with minus ("-"). You sholud copy Chat ID with it', 'ttls_translate' ) ?></li>
     570                                                    </ol>
     571                                                <?php echo esc_html__('You get a Chat ID.', 'ttls_translate'); ?>
     572                                                </div>
     573                                            </div>
     574                                        </label>
     575                                        <div class="input-group">
     576                                            <span class="input-group-addon"><i class="fa fa-key"></i></span>
     577                                            <input
     578                                                id="<?php echo esc_attr( $input_id ); ?>"
     579                                                data-name="<?php echo esc_attr( $input_id ); ?>"
     580                                                name="<?php echo esc_attr( $input_name ); ?>"
     581                                                type="text"
     582                                                value="<?php echo esc_attr( get_option( $input_name, '' ) ); ?>"
     583                                                class="form-control"
     584                                                >
     585                                        </div>
     586                                    </div>
     587                                </div>
     588                            </div>
     589                        </div>
     590                        <div class="ttls__settings-inner-footer">
     591                            <span class="text-muted"><?php echo esc_html__('There were no changes', 'ttls_translate'); ?></span>
     592                            <button class="btn btn-dark"><?php echo esc_html__('Save', 'ttls_translate'); ?></button>
     593                        </div>
     594                    </form>
     595
    480596                    <form action="#" id="ttls__attachment" class="ttls__settings-inner ttls-setting-form">
    481597                        <div class="ttls__settings-inner-header">
     
    687803                            <button class="btn btn-dark"><?php echo esc_html__('Save', 'ttls_translate'); ?></button>
    688804                        </div>
    689                     </form>
     805                    </form>                 
    690806                    <form action="#" id="ttls__license_standard" class="ttls__settings-inner ttls-setting-form">
    691807                        <div class="ttls__settings-inner-header">
  • ticketrilla-server/tags/v.1.0.3/includes/core/class-attachments.php

    r2172146 r2387080  
    309309                            ) );
    310310                        }
    311                         include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
    312                         include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
    313                         $wp_my_filesystem = new WP_Filesystem_Direct(null);
    314                         if ( !$wp_my_filesystem->is_writable( $uploads_dir['path'] )  ) { // check for write permissions in folder
     311                        global $wp_filesystem;
     312                        require_once ( ABSPATH . '/wp-admin/includes/file.php' );
     313                        WP_Filesystem();
     314                        if ( !$wp_filesystem->is_writable( $uploads_dir['path'] )  ) { // check for write permissions in folder
    315315                            $error_message = esc_html__('You do not have sufficient permissions to write to folder: ', 'ttls_translate').$uploads_dir['path'];
    316316                            wp_send_json_error( array(
     
    336336                                array(
    337337                                    PCLZIP_ATT_FILE_NAME => $_FILES['file']['name'],
    338                                     PCLZIP_ATT_FILE_CONTENT => $wp_my_filesystem->get_contents( $_FILES['file']['tmp_name'] ),
     338                                    PCLZIP_ATT_FILE_CONTENT => $wp_filesystem->get_contents( $_FILES['file']['tmp_name'] ),
    339339                                )
    340340                            ) );
     
    380380
    381381                        // Defining permissions to files
    382                         $wp_my_filesystem->chmod( $new_file_name, 0000666 );
     382                        $wp_filesystem->chmod( $new_file_name, 0000666 );
    383383
    384384                        // Generate an array for including files in database
     
    616616                }
    617617
    618                 include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
    619                 include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
    620                 $wp_my_filesystem = new WP_Filesystem_Direct(null);
    621                 if ( !$wp_my_filesystem->is_writable( $uploads_dir['path'] )  ) {
     618                global $wp_filesystem;
     619                require_once ( ABSPATH . '/wp-admin/includes/file.php' );
     620                WP_Filesystem();
     621                if ( !$wp_filesystem->is_writable( $uploads_dir['path'] )  ) {
    622622                    $error->add( 'ttls_attachment_save', 'You do not have sufficient permissions to write to the attachments folder' , array( 'status' => 500 ) );
    623623                    return $error;
     
    636636                        array(
    637637                            PCLZIP_ATT_FILE_NAME => $new_zip_name,
    638                             PCLZIP_ATT_FILE_CONTENT => $wp_my_filesystem->get_contents( $tmpfname ),
     638                            PCLZIP_ATT_FILE_CONTENT => $wp_filesystem->get_contents( $tmpfname ),
    639639                        )
    640640                    ) );
     
    653653
    654654                // Set correct file permissions.
    655                 $wp_my_filesystem->chmod( $new_file_name, 0000666 );
     655                $wp_filesystem->chmod( $new_file_name, 0000666 );
    656656
    657657
  • ticketrilla-server/tags/v.1.0.3/includes/core/class-licenses.php

    r2172146 r2387080  
    447447                        $custom_editor_of_license = apply_filters( 'ttls_license_edit_'.$license->ttls_license_type, $custom_editor_of_license );
    448448                        if ( $custom_editor_of_license['status'] ) {
    449                             echo wp_kses_post( $custom_editor_of_license['box'] );
     449                            echo $custom_editor_of_license['box'];
    450450                        } else {
    451451                            echo '<div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
     
    11551155                $old_license = $this->get( $good_license['license_type'], $good_license['license_token'] );
    11561156                if( !is_wp_error( $old_license ) ) {
    1157                     if ( get_option( 'ttls_license_multiple_users_'.$good_license['license_type'], false ) ) {
     1157                    if ( empty( $old_license['owners'] ) || get_option( 'ttls_license_multiple_users_'.$good_license['license_type'], false ) ) {
    11581158                        return $this->add_user( $old_license['id'], $good_license['user'] );
    11591159                    } else {
    1160                         $error->add( 'ttls_license_used', 'This URL is already been used', array( 'status' => 400 ) );
     1160                        $error->add( 'ttls_license_used', 'This license is already been used', array( 'status' => 400 ) );
    11611161                        return $error;
    11621162                    }
  • ticketrilla-server/tags/v.1.0.3/includes/core/class-link.php

    r2172146 r2387080  
    4646                $all_routes = array_merge( $all_routes, apply_filters( 'ttls_add_custom_routes', $new_routes ) );
    4747
    48 
    4948                foreach ( $all_routes as $r_key => $r_route ) {
    5049
     
    147146                                        return array( 'message' => 'This token could be used' );
    148147                                    } else {
    149                                         if ( get_option( 'ttls_license_multiple_users_'.$user_info['license_type'], false ) ) {
     148                                        if ( empty( $old_license['owners'] ) || get_option( 'ttls_license_multiple_users_'.$user_info['license_type'], false ) ) {
    150149                                            return array( 'message' => 'This token could be used' );
    151150                                        } else {
     
    284283                        case 'add':
    285284                            $ticket_data = filter_input_array( INPUT_POST, FILTER_SANITIZE_STRING );
     285                            $ticket_data['content'] = empty( $_POST['content'] ) ? '' : wp_kses_post( $_POST['content'] );
    286286                            $ticket_data['parent_status'] = 'pending';
    287287                            $ticket_data['ttls_servers'] = $can_do['ttls_servers'];
     
    625625                        } else {
    626626                            $login_token = 'required'; // possible/required/false
    627                             $register_token = false; // possible/required/false
     627                            $register_token = 'possible'; // possible/required/false
    628628                        }
    629629
  • ticketrilla-server/tags/v.1.0.3/includes/core/class-ticket.php

    r2172146 r2387080  
    514514                        'post_type'      => 'ttls_ticket',
    515515                        'meta_input'     => array(
    516                             'ttls_status' => 'free',
    517516                            'ttls_response_status' => apply_filters( 'ttls_add_ticket_response_status', $good_ticket['response_status'], $ticket ),
    518517                        ),
     
    523522                    }
    524523
    525                     if ( ! empty( $good_ticket['parent'] ) ) { // when a response
     524                    if ( empty( $good_ticket['parent'] ) ) {
     525                        $new_ticket['meta_input']['ttls_status'] = 'free';
     526                    } else {  // when a response
    526527                        $new_ticket['post_parent'] = $good_ticket['parent'];
    527528                        $new_ticket['meta_input']['ttls_response_reason'] = $good_ticket['response_reason'];
  • ticketrilla-server/tags/v.1.0.3/includes/core/ttls-actions.php

    r2172146 r2387080  
    3939    add_action( 'init', 'ttls_check_plugin_settings' );
    4040    add_action( 'init', 'ttls_check_standard_license_type' );
     41    add_action( 'init', 'ttls_upgrade_plugin_version' );
    4142   
    4243    add_action( 'wp_ajax_ttls_generate_htaccess', 'ttls_generate_htaccess' );
     
    4849    // hook for automatic ticket closure
    4950    add_action('ttls_autoclose_ticket', array( 'TTLS_Ticket', 'autoclose' ));
     51   
     52    add_action( 'ttls_after_add_ticket', 'ttls_update_pending_tickets_count' );
     53    add_action( 'ttls_after_add_ticket', 'ttls_telegram_notify' );
    5054
    5155    /**
  • ticketrilla-server/tags/v.1.0.3/includes/core/ttls-filters.php

    r2172146 r2387080  
    8585   
    8686    add_filter( 'ttls_link_server_firstproduct', 'ttls_link_response_data_add_plugin_ver' );
    87    
     87
     88    add_filter( 'heartbeat_send', 'ttls_heartbeat_send', 10, 2 );
     89     
     90    function ttls_heartbeat_send( $response, $data ) {
     91        $pending_tickets_count = get_option( 'ttls_pending_tickets_count' );
     92        if ( (int) $pending_tickets_count ) {
     93            $response['ttls_pending_tickets_count'] = $pending_tickets_count;
     94        }
     95        return $response;
     96    }
     97
  • ticketrilla-server/tags/v.1.0.3/includes/short-functions.php

    r2172146 r2387080  
    9292
    9393function ttls_create_test( $upload_dir ){
    94     include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
    95     include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
    96     $wp_my_filesystem = new WP_Filesystem_Direct(null);
     94    global $wp_filesystem;
     95    require_once ( ABSPATH . '/wp-admin/includes/file.php' );
     96    WP_Filesystem();
    9797    $test_php_path = trailingslashit( $upload_dir['path'] ) . 'test.php';
    98     if ( $wp_my_filesystem->exists( $test_php_path ) ) {
     98    if ( $wp_filesystem->exists( $test_php_path ) ) {
    9999        return true;
    100100    } else {
    101         if ( $wp_my_filesystem->is_writable( $upload_dir['path'] ) ) {
    102             $wp_my_filesystem->put_contents( $test_php_path, '<?php echo "PHP"; ?>' );
     101        if ( $wp_filesystem->is_writable( $upload_dir['path'] ) ) {
     102            $wp_filesystem->put_contents( $test_php_path, '<?php echo "PHP"; ?>' );
    103103        }
    104104    }
     
    117117    if ( current_user_can( 'ttls_plugin_admin' ) ) {
    118118        $response = array( 'status' => false, 'message' => '' );
    119         include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
    120         include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
    121         $wp_my_filesystem = new WP_Filesystem_Direct(null);
     119        global $wp_filesystem;
     120        require_once ( ABSPATH . '/wp-admin/includes/file.php' );
     121        WP_Filesystem();
    122122        $uploads_dir = wp_upload_dir('ttls');
    123123        $htaccess = $uploads_dir['path'].'.htaccess';
    124124
    125         if ( $wp_my_filesystem->exists( $htaccess ) ) {
     125        if ( $wp_filesystem->exists( $htaccess ) ) {
    126126            $response['message'] = esc_html__('.htaccess file is present.', 'ttls_translate');
    127127        } else {
     
    129129        }
    130130
    131         if ( $wp_my_filesystem->put_contents( $htaccess, "\n php_flag engine 0" ) ) {
     131        if ( $wp_filesystem->put_contents( $htaccess, "\n php_flag engine 0" ) ) {
    132132            $response['status'] = true;
    133133            $response['message'] .= '<br>'.esc_html__('.htaccess has been updated.', 'ttls_translate');
     
    213213    }
    214214}
     215
     216function ttls_upgrade_plugin_version() {
     217    if ( is_admin() ) {
     218        $upgraded_ver = get_option( 'ttls_upgraded_version' );
     219        if ( ! $upgraded_ver || version_compare( $upgraded_ver, TTLS_PLUGIN_VERSION, '<' ) ) {
     220            ttls_upgrade_tickets();
     221           
     222            update_option( 'ttls_upgraded_version', TTLS_PLUGIN_VERSION );
     223           
     224        }
     225    }
     226}
     227
     228function ttls_upgrade_tickets() {
     229   
     230    // Delete ttls_status meta = free of ticket responses
     231   
     232    $args = array(
     233        'post_type'  => 'ttls_ticket',
     234        'nopaging'   => true,
     235        'meta_query' => array(
     236            array(
     237                'key'     => 'ttls_status',
     238                'value'   => 'free',
     239                'compare' => '=',
     240            ),
     241        ),
     242    );
     243    foreach ( get_posts( $args ) as $ticket ) {
     244        if( $ticket->post_parent ) {
     245            delete_post_meta( $ticket->ID, 'ttls_status' );
     246        }
     247    }
     248}
     249
     250function ttls_calculate_pending_tickets() {
     251    $args = array(
     252        'post_type'  => 'ttls_ticket',
     253        'nopaging'   => true,
     254        'meta_query' => array(
     255            array(
     256                'key'     => 'ttls_status',
     257                'value'   => array('free', 'pending'),
     258                'compare' => 'IN',
     259            ),
     260        ),
     261    );
     262    $query = new WP_Query( $args );
     263    return $query->found_posts;
     264}
     265
     266function ttls_update_pending_tickets_count() {
     267    update_option( 'ttls_pending_tickets_count', ttls_calculate_pending_tickets() );
     268}
     269
     270function ttls_telegram_get_me( $token ) {
     271    return ttls_telegram_api_request( $token, 'getMe' );
     272}
     273
     274function ttls_telegram_get_chat( $token, $chat_id ) {
     275    return ttls_telegram_api_request( $token, 'getChat', array('chat_id' => $chat_id) );
     276}
     277
     278function ttls_telegram_send_message( $text ) {
     279    $token = get_option( 'ttls_notifications_telegram_token', '' );
     280    $chat_id = get_option( 'ttls_notifications_telegram_chat_id', '' );
     281    if ( $token && $chat_id ) {
     282        return ttls_telegram_api_request( $token, 'sendMessage', array('chat_id' => $chat_id, 'text' => $text) );
     283    }
     284    return false;
     285}
     286
     287function ttls_telegram_api_request( $token, $method, $params = array() ) {
     288    $url = 'https://api.telegram.org/bot' . $token .'/' . $method;
     289    $options = array(
     290        'http' => array(
     291            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
     292            'method'  => 'POST',
     293            'content' => http_build_query( $params ),
     294        )
     295    );
     296    $context = stream_context_create( $options );
     297    $result = file_get_contents( $url, false, $context );
     298    return $result;
     299}
     300
     301function ttls_format_telegram_notification( $ticket ) {
     302    $ticket_obj = new TTLS_Ticket;
     303    $response = $ticket_obj->get_response( $ticket->ID );
     304   
     305    if ( $response['author_pos'] == 'Client' ) {
     306
     307        $date = (new \DateTime($response['time']))->format('d-m-Y H:i');
     308
     309        if ( empty( $response['parent_id'] ) ) {
     310            $ticket_id = $response['id'];
     311        } else {
     312            $ticket_id = $response['parent_id'];
     313        }
     314       
     315        $title = '#'.esc_html( $ticket_id . ': '.stripcslashes( get_post($ticket_id)->post_title ) );
     316   
     317        $action = $ticket_obj->get_localized_response_title( array(
     318            'type' => $response['type'],
     319            'prepend' => esc_html( $response['author'] ),
     320            'append' => empty( $response['person'] ) ? '' : ' ' . esc_html( $response['person'] ),
     321        ) );
     322       
     323        $text = $action . ': ' . $title . ' [' . $date . ']';
     324        return $text;
     325    }
     326   
     327    return false;
     328}
     329
     330function ttls_telegram_notify( $ticket ) {
     331    $text = ttls_format_telegram_notification( $ticket );
     332    if ( $text ) {
     333        ttls_telegram_send_message( $text );
     334    }
     335}
  • ticketrilla-server/tags/v.1.0.3/languages/ttls_translate.pot

    r2172146 r2387080  
    1 # Copyright (C) 2019 Ticketrilla: Server Plugin
     1# Copyright (C) 2020 Ticketrilla: Server Plugin
    22# This file is distributed under the same license as the Ticketrilla: Server Plugin package.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Ticketrilla: Server Plugin 1.0.3\n"
     5"Project-Id-Version: Ticketrilla: Server Plugin 1.0.4\n"
    66"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/ticketrilla-server\n"
    7 "POT-Creation-Date: 2019-09-02 11:03:24+00:00\n"
     7"POT-Creation-Date: 2020-09-22 13:06:27+00:00\n"
    88"MIME-Version: 1.0\n"
    99"Content-Type: text/plain; charset=UTF-8\n"
    1010"Content-Transfer-Encoding: 8bit\n"
    11 "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
     11"PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
    1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    1313"Language-Team: LANGUAGE <LL@li.org>\n"
    1414
    15 #: includes/admin/core/class-page.php:107
     15#: includes/admin/core/class-page.php:110
    1616msgid "The password variable is not specified in the body text"
    1717msgstr ""
    1818
    19 #: includes/admin/core/class-page.php:114
     19#: includes/admin/core/class-page.php:117
    2020msgid "The reset-key variable is not specified in the body text"
    2121msgstr ""
    2222
    23 #: includes/admin/core/class-page.php:129
    24 #: includes/admin/core/class-page.php:137
     23#: includes/admin/core/class-page.php:133
     24msgid "Token is invalid"
     25msgstr ""
     26
     27#: includes/admin/core/class-page.php:142
     28msgid "First enter valid token"
     29msgstr ""
     30
     31#: includes/admin/core/class-page.php:150
     32msgid "Chat ID is invalid"
     33msgstr ""
     34
     35#: includes/admin/core/class-page.php:165
     36#: includes/admin/core/class-page.php:173
    2537msgid "Errors with updating"
    2638msgstr ""
    2739
    28 #: includes/admin/core/class-page.php:143
     40#: includes/admin/core/class-page.php:179
    2941msgid "It is not e-mail"
    3042msgstr ""
    3143
    32 #: includes/admin/core/class-page.php:159
     44#: includes/admin/core/class-page.php:195
    3345msgid "New password is empty"
    3446msgstr ""
    3547
    36 #: includes/admin/core/class-page.php:166 includes/core/class-users.php:229
     48#: includes/admin/core/class-page.php:202 includes/core/class-users.php:229
    3749msgid "New password"
    3850msgstr ""
    3951
    40 #: includes/admin/core/class-page.php:174 includes/core/class-users.php:252
     52#: includes/admin/core/class-page.php:210 includes/core/class-users.php:252
    4153msgid "Updated! "
    4254msgstr ""
    4355
    44 #: includes/admin/core/class-page.php:176
     56#: includes/admin/core/class-page.php:212
    4557msgid "Some problems with updating"
    4658msgstr ""
    4759
    48 #: includes/admin/core/class-page.php:198
    49 #: includes/admin/core/class-page.php:205
    50 #: includes/admin/core/class-page.php:214 includes/core/class-users.php:191
     60#: includes/admin/core/class-page.php:234
     61#: includes/admin/core/class-page.php:241
     62#: includes/admin/core/class-page.php:250 includes/core/class-users.php:191
    5163#: includes/core/class-users.php:199
    5264msgid "Encountered an error while updating"
    5365msgstr ""
    5466
    55 #: includes/admin/core/class-page.php:219
     67#: includes/admin/core/class-page.php:255
    5668msgid "Settings updated"
    5769msgstr ""
    5870
    59 #: includes/admin/core/class-page.php:224
     71#: includes/admin/core/class-page.php:260
    6072msgid "You do not have sufficient rights for these changes"
    6173msgstr ""
    6274
    63 #: includes/admin/core/class-page.php:245
    64 #: includes/admin/core/class-page.php:246
     75#: includes/admin/core/class-page.php:284
     76#: includes/admin/core/class-page.php:285
    6577#: includes/admin/templates/page/ticketrilla-server.php:10
    6678msgid "Dashboard"
    6779msgstr ""
    6880
    69 #: includes/admin/core/class-page.php:253
    70 #: includes/admin/core/class-page.php:254
     81#: includes/admin/core/class-page.php:292
     82#: includes/admin/core/class-page.php:293
    7183#: includes/admin/templates/page/ticketrilla-server-settings.php:28
    7284#: includes/admin/templates/page/ticketrilla-server-tickets.php:21
     
    7688msgstr ""
    7789
    78 #: includes/admin/core/class-page.php:261
    79 #: includes/admin/core/class-page.php:262
     90#: includes/admin/core/class-page.php:300
     91#: includes/admin/core/class-page.php:301
    8092#: includes/admin/templates/page/ticketrilla-server-users.php:23
    8193msgid "Users"
    8294msgstr ""
    8395
    84 #: includes/admin/core/class-page.php:269
    85 #: includes/admin/core/class-page.php:270
     96#: includes/admin/core/class-page.php:308
     97#: includes/admin/core/class-page.php:309
    8698#: includes/admin/templates/page/ticketrilla-server-licences.php:14
    8799#: includes/core/class-common.php:54 includes/core/class-common.php:55
     
    90102msgstr ""
    91103
    92 #: includes/admin/core/class-page.php:277
    93 #: includes/admin/core/class-page.php:278
     104#: includes/admin/core/class-page.php:316
     105#: includes/admin/core/class-page.php:317
    94106#: includes/admin/templates/page/ticketrilla-server-addons.php:6
    95107#: includes/admin/templates/page/ticketrilla-server-licences.php:9
     
    102114msgstr ""
    103115
    104 #: includes/admin/core/class-page.php:285
    105 #: includes/admin/core/class-page.php:286
     116#: includes/admin/core/class-page.php:324
     117#: includes/admin/core/class-page.php:325
    106118#: includes/admin/templates/page/ticketrilla-server-addons.php:11
    107119msgid "Addons"
    108120msgstr ""
    109121
    110 #: includes/admin/core/class-page.php:292
     122#: includes/admin/core/class-page.php:331
    111123msgid "Ticketrilla Server"
    112124msgstr ""
     
    185197
    186198#: includes/admin/templates/page/ticketrilla-server-licences.php:24
    187 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:5
     199#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:6
    188200#: includes/admin/templates/page/ticketrilla-server-tickets.php:43
    189201msgid "All"
     
    191203
    192204#: includes/admin/templates/page/ticketrilla-server-licences.php:31
    193 #: includes/admin/templates/page/ticketrilla-server-licences.php:168
    194205#: includes/admin/templates/page/ticketrilla-server-licences.php:170
     206#: includes/admin/templates/page/ticketrilla-server-licences.php:172
    195207#: includes/core/class-common.php:59
    196208msgid "New License"
     
    199211#: includes/admin/templates/page/ticketrilla-server-licences.php:42
    200212#: includes/admin/templates/page/ticketrilla-server-licences.php:53
    201 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:27
    202 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:37
     213#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:28
     214#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:38
    203215#: includes/admin/templates/page/ticketrilla-server-users-clients.php:18
    204 #: includes/core/class-ticket.php:1487
     216#: includes/core/class-ticket.php:1513
    205217msgid "Client"
    206218msgstr ""
     
    208220#: includes/admin/templates/page/ticketrilla-server-licences.php:43
    209221#: includes/admin/templates/page/ticketrilla-server-licences.php:54
    210 #: includes/admin/templates/page/ticketrilla-server-licences.php:223
     222#: includes/admin/templates/page/ticketrilla-server-licences.php:225
    211223#: includes/admin/templates/page/ticketrilla-server-users-clients.php:26
    212224#: includes/admin/templates/page/ticketrilla-server-users.php:105
     
    255267msgstr ""
    256268
    257 #: includes/admin/templates/page/ticketrilla-server-licences.php:121
    258 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:104
     269#: includes/admin/templates/page/ticketrilla-server-licences.php:123
     270#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:108
    259271#: includes/admin/templates/page/ticketrilla-server-users-clients.php:129
    260272#: includes/admin/templates/page/ticketrilla-server-users-developers.php:138
     
    262274msgstr ""
    263275
    264 #: includes/admin/templates/page/ticketrilla-server-licences.php:142
     276#: includes/admin/templates/page/ticketrilla-server-licences.php:144
    265277#: includes/admin/templates/page/ticketrilla-server-users-clients.php:150
    266278#: includes/admin/templates/page/ticketrilla-server-users-developers.php:159
     
    268280msgstr ""
    269281
    270 #: includes/admin/templates/page/ticketrilla-server-licences.php:156
     282#: includes/admin/templates/page/ticketrilla-server-licences.php:158
    271283#: includes/admin/templates/page/ticketrilla-server-users.php:357
    272284msgid "Loading data..."
    273285msgstr ""
    274286
    275 #: includes/admin/templates/page/ticketrilla-server-licences.php:169
    276 #: includes/admin/templates/page/ticketrilla-server-licences.php:178
     287#: includes/admin/templates/page/ticketrilla-server-licences.php:171
     288#: includes/admin/templates/page/ticketrilla-server-licences.php:180
    277289#: includes/admin/templates/page/ticketrilla-server-users.php:41
    278290#: includes/admin/templates/page/ticketrilla-server-users.php:71
     
    280292msgstr ""
    281293
    282 #: includes/admin/templates/page/ticketrilla-server-licences.php:177
     294#: includes/admin/templates/page/ticketrilla-server-licences.php:179
    283295msgid "Select user"
    284296msgstr ""
    285297
    286 #: includes/admin/templates/page/ticketrilla-server-licences.php:195
    287 #: includes/admin/templates/page/ticketrilla-server-settings.php:599
    288 #: includes/admin/templates/page/ticketrilla-server-settings.php:622
    289 #: includes/admin/templates/page/ticketrilla-server-settings.php:645
    290 #: includes/admin/templates/page/ticketrilla-server-settings.php:669
     298#: includes/admin/templates/page/ticketrilla-server-licences.php:197
     299#: includes/admin/templates/page/ticketrilla-server-settings.php:715
     300#: includes/admin/templates/page/ticketrilla-server-settings.php:738
     301#: includes/admin/templates/page/ticketrilla-server-settings.php:761
     302#: includes/admin/templates/page/ticketrilla-server-settings.php:785
    291303#: includes/admin/templates/page/ticketrilla-server-users.php:79
    292304#: includes/admin/templates/page/ticketrilla-server-users.php:173
     
    296308msgstr ""
    297309
    298 #: includes/admin/templates/page/ticketrilla-server-licences.php:202
    299 #: includes/admin/templates/page/ticketrilla-server-settings.php:51
     310#: includes/admin/templates/page/ticketrilla-server-licences.php:204
     311#: includes/admin/templates/page/ticketrilla-server-settings.php:52
    300312#: includes/admin/templates/page/ticketrilla-server-users.php:85
    301313#: includes/admin/templates/page/ticketrilla-server-users.php:179
     
    304316msgstr ""
    305317
    306 #: includes/admin/templates/page/ticketrilla-server-licences.php:208
    307 #: includes/admin/templates/page/ticketrilla-server-settings.php:98
     318#: includes/admin/templates/page/ticketrilla-server-licences.php:210
     319#: includes/admin/templates/page/ticketrilla-server-settings.php:99
    308320#: includes/admin/templates/page/ticketrilla-server-users.php:91
    309321#: includes/admin/templates/page/ticketrilla-server-users.php:185
     
    312324msgstr ""
    313325
    314 #: includes/admin/templates/page/ticketrilla-server-licences.php:214
     326#: includes/admin/templates/page/ticketrilla-server-licences.php:216
    315327#: includes/admin/templates/page/ticketrilla-server-users.php:96
    316328#: includes/admin/templates/page/ticketrilla-server-users.php:290
     
    319331msgstr ""
    320332
    321 #: includes/admin/templates/page/ticketrilla-server-licences.php:229
     333#: includes/admin/templates/page/ticketrilla-server-licences.php:231
    322334msgid "Add license"
    323335msgstr ""
    324336
    325 #: includes/admin/templates/page/ticketrilla-server-licences.php:237
     337#: includes/admin/templates/page/ticketrilla-server-licences.php:239
    326338#: includes/admin/templates/page/ticketrilla-server-users.php:119
    327339#: includes/admin/templates/page/ticketrilla-server-users.php:313
     
    329341msgstr ""
    330342
    331 #: includes/admin/templates/page/ticketrilla-server-licences.php:238
    332 #: includes/admin/templates/page/ticketrilla-server-licences.php:239
     343#: includes/admin/templates/page/ticketrilla-server-licences.php:240
     344#: includes/admin/templates/page/ticketrilla-server-licences.php:241
    333345#: includes/admin/templates/page/ticketrilla-server-users.php:120
    334346#: includes/admin/templates/page/ticketrilla-server-users.php:121
     
    338350msgstr ""
    339351
    340 #: includes/admin/templates/page/ticketrilla-server-licences.php:249
     352#: includes/admin/templates/page/ticketrilla-server-licences.php:251
    341353#: includes/admin/templates/page/ticketrilla-server-users.php:132
    342354#: includes/admin/templates/page/ticketrilla-server-users.php:325
     
    345357msgstr ""
    346358
    347 #: includes/admin/templates/page/ticketrilla-server-licences.php:253
     359#: includes/admin/templates/page/ticketrilla-server-licences.php:255
    348360#: includes/admin/templates/page/ticketrilla-server-users.php:136
    349361#: includes/admin/templates/page/ticketrilla-server-users.php:329
     
    352364msgstr ""
    353365
    354 #: includes/admin/templates/page/ticketrilla-server-licences.php:257
     366#: includes/admin/templates/page/ticketrilla-server-licences.php:259
    355367#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:85
    356368#: includes/admin/templates/page/ticketrilla-server-users.php:140
     
    359371msgstr ""
    360372
    361 #: includes/admin/templates/page/ticketrilla-server-licences.php:271
    362 #: includes/admin/templates/page/ticketrilla-server-settings.php:856
     373#: includes/admin/templates/page/ticketrilla-server-licences.php:273
     374#: includes/admin/templates/page/ticketrilla-server-settings.php:972
    363375#: includes/admin/templates/page/ticketrilla-server-users.php:153
    364376#: includes/admin/templates/page/ticketrilla-server-users.php:222
     
    367379msgstr ""
    368380
    369 #: includes/admin/templates/page/ticketrilla-server-licences.php:272
    370 #: includes/admin/templates/page/ticketrilla-server-licences.php:275
     381#: includes/admin/templates/page/ticketrilla-server-licences.php:274
     382#: includes/admin/templates/page/ticketrilla-server-licences.php:277
    371383#: includes/admin/templates/page/ticketrilla-server-users-clients.php:95
    372384#: includes/admin/templates/page/ticketrilla-server-users.php:111
     
    377389msgstr ""
    378390
    379 #: includes/admin/templates/page/ticketrilla-server-licences.php:273
     391#: includes/admin/templates/page/ticketrilla-server-licences.php:275
    380392msgid "Create Client"
    381393msgstr ""
     
    394406
    395407#: includes/admin/templates/page/ticketrilla-server-settings.php:29
     408msgid "Notifications"
     409msgstr ""
     410
     411#: includes/admin/templates/page/ticketrilla-server-settings.php:30
    396412#: includes/core/class-common.php:79 includes/core/class-common.php:90
    397413msgid "Attachments"
    398414msgstr ""
    399415
    400 #: includes/admin/templates/page/ticketrilla-server-settings.php:30
     416#: includes/admin/templates/page/ticketrilla-server-settings.php:31
    401417msgid "Reset password"
    402418msgstr ""
    403419
    404 #: includes/admin/templates/page/ticketrilla-server-settings.php:31
     420#: includes/admin/templates/page/ticketrilla-server-settings.php:32
    405421msgid "Standard license"
    406422msgstr ""
    407423
    408 #: includes/admin/templates/page/ticketrilla-server-settings.php:44
     424#: includes/admin/templates/page/ticketrilla-server-settings.php:45
    409425msgid "Your profile"
    410426msgstr ""
    411427
    412 #: includes/admin/templates/page/ticketrilla-server-settings.php:55
     428#: includes/admin/templates/page/ticketrilla-server-settings.php:56
    413429msgid "Displayed name"
    414430msgstr ""
    415431
    416 #: includes/admin/templates/page/ticketrilla-server-settings.php:66
    417 #: includes/admin/templates/page/ticketrilla-server-settings.php:80
     432#: includes/admin/templates/page/ticketrilla-server-settings.php:67
    418433#: includes/admin/templates/page/ticketrilla-server-settings.php:81
     434#: includes/admin/templates/page/ticketrilla-server-settings.php:82
    419435#: includes/admin/templates/page/ticketrilla-server-users.php:201
    420436#: includes/admin/templates/page/ticketrilla-server-users.php:202
     
    424440msgstr ""
    425441
    426 #: includes/admin/templates/page/ticketrilla-server-settings.php:70
     442#: includes/admin/templates/page/ticketrilla-server-settings.php:71
    427443msgid "You can change your password"
    428444msgstr ""
    429445
    430 #: includes/admin/templates/page/ticketrilla-server-settings.php:88
    431 #: includes/admin/templates/page/ticketrilla-server-settings.php:90
     446#: includes/admin/templates/page/ticketrilla-server-settings.php:89
     447#: includes/admin/templates/page/ticketrilla-server-settings.php:91
    432448#: includes/core/class-users.php:331 includes/core/class-users.php:333
    433449msgid "Change password"
    434450msgstr ""
    435451
    436 #: includes/admin/templates/page/ticketrilla-server-settings.php:89
     452#: includes/admin/templates/page/ticketrilla-server-settings.php:90
    437453msgid "Don't change"
    438454msgstr ""
    439455
    440 #: includes/admin/templates/page/ticketrilla-server-settings.php:102
     456#: includes/admin/templates/page/ticketrilla-server-settings.php:103
    441457msgid "You can change your email"
    442458msgstr ""
    443459
    444 #: includes/admin/templates/page/ticketrilla-server-settings.php:113
     460#: includes/admin/templates/page/ticketrilla-server-settings.php:114
    445461#: includes/admin/templates/page/ticketrilla-server-users.php:191
    446462#: includes/core/class-users.php:308
     
    448464msgstr ""
    449465
    450 #: includes/admin/templates/page/ticketrilla-server-settings.php:117
     466#: includes/admin/templates/page/ticketrilla-server-settings.php:118
    451467msgid "You can change your position"
    452 msgstr ""
    453 
    454 #: includes/admin/templates/page/ticketrilla-server-settings.php:130
    455 #: includes/admin/templates/page/ticketrilla-server-settings.php:340
    456 #: includes/admin/templates/page/ticketrilla-server-settings.php:476
    457 #: includes/admin/templates/page/ticketrilla-server-settings.php:578
    458 #: includes/admin/templates/page/ticketrilla-server-settings.php:686
    459 #: includes/admin/templates/page/ticketrilla-server-settings.php:821
    460 msgid "There were no changes"
    461468msgstr ""
    462469
     
    464471#: includes/admin/templates/page/ticketrilla-server-settings.php:341
    465472#: includes/admin/templates/page/ticketrilla-server-settings.php:477
    466 #: includes/admin/templates/page/ticketrilla-server-settings.php:579
    467 #: includes/admin/templates/page/ticketrilla-server-settings.php:687
    468 #: includes/admin/templates/page/ticketrilla-server-settings.php:822
     473#: includes/admin/templates/page/ticketrilla-server-settings.php:591
     474#: includes/admin/templates/page/ticketrilla-server-settings.php:694
     475#: includes/admin/templates/page/ticketrilla-server-settings.php:802
     476#: includes/admin/templates/page/ticketrilla-server-settings.php:937
     477msgid "There were no changes"
     478msgstr ""
     479
     480#: includes/admin/templates/page/ticketrilla-server-settings.php:132
     481#: includes/admin/templates/page/ticketrilla-server-settings.php:342
     482#: includes/admin/templates/page/ticketrilla-server-settings.php:478
     483#: includes/admin/templates/page/ticketrilla-server-settings.php:592
     484#: includes/admin/templates/page/ticketrilla-server-settings.php:695
     485#: includes/admin/templates/page/ticketrilla-server-settings.php:803
     486#: includes/admin/templates/page/ticketrilla-server-settings.php:938
    469487#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:215
    470488#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:333
     
    473491msgstr ""
    474492
    475 #: includes/admin/templates/page/ticketrilla-server-settings.php:138
     493#: includes/admin/templates/page/ticketrilla-server-settings.php:139
    476494msgid "Support product settings"
    477495msgstr ""
    478496
    479 #: includes/admin/templates/page/ticketrilla-server-settings.php:142
     497#: includes/admin/templates/page/ticketrilla-server-settings.php:143
    480498msgid "Client-side information"
    481499msgstr ""
    482500
    483 #: includes/admin/templates/page/ticketrilla-server-settings.php:152
     501#: includes/admin/templates/page/ticketrilla-server-settings.php:153
    484502msgid "Product type"
    485503msgstr ""
    486504
    487 #: includes/admin/templates/page/ticketrilla-server-settings.php:157
     505#: includes/admin/templates/page/ticketrilla-server-settings.php:158
    488506msgid "Theme"
    489507msgstr ""
    490508
    491 #: includes/admin/templates/page/ticketrilla-server-settings.php:158
     509#: includes/admin/templates/page/ticketrilla-server-settings.php:159
    492510msgid "Plugin"
    493511msgstr ""
    494512
    495 #: includes/admin/templates/page/ticketrilla-server-settings.php:159
     513#: includes/admin/templates/page/ticketrilla-server-settings.php:160
    496514msgid "HTML"
    497515msgstr ""
    498516
    499 #: includes/admin/templates/page/ticketrilla-server-settings.php:160
     517#: includes/admin/templates/page/ticketrilla-server-settings.php:161
    500518msgid "Design-Mockup"
    501519msgstr ""
    502520
    503 #: includes/admin/templates/page/ticketrilla-server-settings.php:161
     521#: includes/admin/templates/page/ticketrilla-server-settings.php:162
    504522#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:205
    505523#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:323
     
    507525msgstr ""
    508526
    509 #: includes/admin/templates/page/ticketrilla-server-settings.php:174
    510 #: includes/admin/templates/page/ticketrilla-server-settings.php:181
     527#: includes/admin/templates/page/ticketrilla-server-settings.php:175
     528#: includes/admin/templates/page/ticketrilla-server-settings.php:182
    511529msgid "Author name"
    512530msgstr ""
    513531
    514 #: includes/admin/templates/page/ticketrilla-server-settings.php:189
    515 #: includes/admin/templates/page/ticketrilla-server-settings.php:196
     532#: includes/admin/templates/page/ticketrilla-server-settings.php:190
     533#: includes/admin/templates/page/ticketrilla-server-settings.php:197
    516534msgid "Developer URL"
    517535msgstr ""
    518536
    519 #: includes/admin/templates/page/ticketrilla-server-settings.php:204
    520 #: includes/admin/templates/page/ticketrilla-server-settings.php:211
     537#: includes/admin/templates/page/ticketrilla-server-settings.php:205
     538#: includes/admin/templates/page/ticketrilla-server-settings.php:212
    521539msgid "Manual URL"
    522540msgstr ""
    523541
    524 #: includes/admin/templates/page/ticketrilla-server-settings.php:219
    525 #: includes/admin/templates/page/ticketrilla-server-settings.php:226
     542#: includes/admin/templates/page/ticketrilla-server-settings.php:220
     543#: includes/admin/templates/page/ticketrilla-server-settings.php:227
    526544msgid "Terms of service URL"
    527545msgstr ""
    528546
    529 #: includes/admin/templates/page/ticketrilla-server-settings.php:234
    530 #: includes/admin/templates/page/ticketrilla-server-settings.php:241
     547#: includes/admin/templates/page/ticketrilla-server-settings.php:235
     548#: includes/admin/templates/page/ticketrilla-server-settings.php:242
    531549msgid "Privacy policy URL"
    532550msgstr ""
    533551
    534 #: includes/admin/templates/page/ticketrilla-server-settings.php:254
     552#: includes/admin/templates/page/ticketrilla-server-settings.php:255
    535553msgid "Product title"
    536554msgstr ""
    537555
    538 #: includes/admin/templates/page/ticketrilla-server-settings.php:263
     556#: includes/admin/templates/page/ticketrilla-server-settings.php:264
    539557msgid "Product slug"
    540558msgstr ""
    541559
    542 #: includes/admin/templates/page/ticketrilla-server-settings.php:268
     560#: includes/admin/templates/page/ticketrilla-server-settings.php:269
    543561msgid "Product description"
    544562msgstr ""
    545563
    546 #: includes/admin/templates/page/ticketrilla-server-settings.php:275
     564#: includes/admin/templates/page/ticketrilla-server-settings.php:276
    547565msgid "Product icon"
    548566msgstr ""
    549567
    550 #: includes/admin/templates/page/ticketrilla-server-settings.php:278
    551 #: includes/admin/templates/page/ticketrilla-server-settings.php:282
     568#: includes/admin/templates/page/ticketrilla-server-settings.php:279
     569#: includes/admin/templates/page/ticketrilla-server-settings.php:283
    552570msgid "Select product image"
    553571msgstr ""
    554572
    555 #: includes/admin/templates/page/ticketrilla-server-settings.php:284
     573#: includes/admin/templates/page/ticketrilla-server-settings.php:285
    556574#: includes/admin/templates/page/ticketrilla-server-users-developers.php:103
    557575msgid "Change"
    558576msgstr ""
    559577
    560 #: includes/admin/templates/page/ticketrilla-server-settings.php:289
     578#: includes/admin/templates/page/ticketrilla-server-settings.php:290
    561579msgid "Select image"
    562580msgstr ""
    563581
    564 #: includes/admin/templates/page/ticketrilla-server-settings.php:306
     582#: includes/admin/templates/page/ticketrilla-server-settings.php:307
    565583msgid "Open registration"
    566584msgstr ""
    567585
    568 #: includes/admin/templates/page/ticketrilla-server-settings.php:310
     586#: includes/admin/templates/page/ticketrilla-server-settings.php:311
    569587msgid "Any user can register"
    570588msgstr ""
    571589
    572 #: includes/admin/templates/page/ticketrilla-server-settings.php:322
     590#: includes/admin/templates/page/ticketrilla-server-settings.php:323
    573591msgid "Product presets"
    574592msgstr ""
    575593
    576 #: includes/admin/templates/page/ticketrilla-server-settings.php:327
     594#: includes/admin/templates/page/ticketrilla-server-settings.php:328
    577595msgid "Please input the preset settings to your product. The copied text should be inserted in the style.css file (for themes) or main php-file (for plugins) at the upper section of the comments."
    578596msgstr ""
    579597
    580 #: includes/admin/templates/page/ticketrilla-server-settings.php:328
     598#: includes/admin/templates/page/ticketrilla-server-settings.php:329
    581599msgid "Example"
    582600msgstr ""
    583601
    584 #: includes/admin/templates/page/ticketrilla-server-settings.php:329
     602#: includes/admin/templates/page/ticketrilla-server-settings.php:330
    585603msgid "Product title must be saved before preset settings generation."
    586604msgstr ""
    587605
    588 #: includes/admin/templates/page/ticketrilla-server-settings.php:334
     606#: includes/admin/templates/page/ticketrilla-server-settings.php:335
    589607msgid "Generate settings"
    590608msgstr ""
    591609
    592 #: includes/admin/templates/page/ticketrilla-server-settings.php:347
     610#: includes/admin/templates/page/ticketrilla-server-settings.php:348
    593611msgid "Ticket settings"
    594612msgstr ""
    595613
    596 #: includes/admin/templates/page/ticketrilla-server-settings.php:355
     614#: includes/admin/templates/page/ticketrilla-server-settings.php:356
    597615msgid "Time limit for adding new tickets"
    598616msgstr ""
    599617
    600 #: includes/admin/templates/page/ticketrilla-server-settings.php:359
     618#: includes/admin/templates/page/ticketrilla-server-settings.php:360
    601619msgid "How ofter are user's allowed to open new tickets"
    602620msgstr ""
    603621
    604 #: includes/admin/templates/page/ticketrilla-server-settings.php:360
     622#: includes/admin/templates/page/ticketrilla-server-settings.php:361
    605623msgid "0 - no limit"
    606624msgstr ""
    607625
    608 #: includes/admin/templates/page/ticketrilla-server-settings.php:373
     626#: includes/admin/templates/page/ticketrilla-server-settings.php:374
    609627msgid "min"
    610628msgstr ""
    611629
    612 #: includes/admin/templates/page/ticketrilla-server-settings.php:379
     630#: includes/admin/templates/page/ticketrilla-server-settings.php:380
    613631msgid "Default ticket status for responses"
    614632msgstr ""
    615633
    616 #: includes/admin/templates/page/ticketrilla-server-settings.php:383
     634#: includes/admin/templates/page/ticketrilla-server-settings.php:384
    617635msgid "While adding a new response, a ticket status could be set by default"
    618636msgstr ""
    619637
    620 #: includes/admin/templates/page/ticketrilla-server-settings.php:413
     638#: includes/admin/templates/page/ticketrilla-server-settings.php:414
    621639msgid "Automatic ticket closure"
    622640msgstr ""
    623641
    624 #: includes/admin/templates/page/ticketrilla-server-settings.php:417
     642#: includes/admin/templates/page/ticketrilla-server-settings.php:418
    625643msgid "If enabled - the ticket will be automatically closed, when it doesn't receives a response from client"
    626644msgstr ""
    627645
    628 #: includes/admin/templates/page/ticketrilla-server-settings.php:425
     646#: includes/admin/templates/page/ticketrilla-server-settings.php:426
    629647msgid "Automatic ticket closure - time limit"
    630648msgstr ""
    631649
    632 #: includes/admin/templates/page/ticketrilla-server-settings.php:429
     650#: includes/admin/templates/page/ticketrilla-server-settings.php:430
    633651msgid "Time period for automatically closing tickets"
    634652msgstr ""
    635653
    636 #: includes/admin/templates/page/ticketrilla-server-settings.php:436
     654#: includes/admin/templates/page/ticketrilla-server-settings.php:437
    637655msgid "Every hour"
    638656msgstr ""
    639657
    640 #: includes/admin/templates/page/ticketrilla-server-settings.php:437
     658#: includes/admin/templates/page/ticketrilla-server-settings.php:438
    641659msgid "Twice a day"
    642660msgstr ""
    643661
    644 #: includes/admin/templates/page/ticketrilla-server-settings.php:438
     662#: includes/admin/templates/page/ticketrilla-server-settings.php:439
    645663msgid "Every day"
    646664msgstr ""
    647665
    648 #: includes/admin/templates/page/ticketrilla-server-settings.php:452
     666#: includes/admin/templates/page/ticketrilla-server-settings.php:453
    649667msgid "Maximum period for closing tickets which didn't receive a response from client"
    650668msgstr ""
    651669
    652 #: includes/admin/templates/page/ticketrilla-server-settings.php:456
     670#: includes/admin/templates/page/ticketrilla-server-settings.php:457
    653671msgid "After the pre-set period of time, inactive tickets will be closed automatically"
    654672msgstr ""
    655673
    656 #: includes/admin/templates/page/ticketrilla-server-settings.php:469
    657 #: includes/admin/templates/page/ticketrilla-server-settings.php:814
     674#: includes/admin/templates/page/ticketrilla-server-settings.php:470
     675#: includes/admin/templates/page/ticketrilla-server-settings.php:930
    658676msgid "days"
    659677msgstr ""
    660678
    661 #: includes/admin/templates/page/ticketrilla-server-settings.php:482
     679#: includes/admin/templates/page/ticketrilla-server-settings.php:484
     680msgid "New events notifications"
     681msgstr ""
     682
     683#: includes/admin/templates/page/ticketrilla-server-settings.php:506
     684msgid "Enable for Telegram"
     685msgstr ""
     686
     687#: includes/admin/templates/page/ticketrilla-server-settings.php:510
     688msgid "If enabled then you get a message about new events on your Telegram"
     689msgstr ""
     690
     691#: includes/admin/templates/page/ticketrilla-server-settings.php:525
     692msgid "Telegram token"
     693msgstr ""
     694
     695#: includes/admin/templates/page/ticketrilla-server-settings.php:529
     696msgid "For getting a token you must send for @BotFather next commands:"
     697msgstr ""
     698
     699#: includes/admin/templates/page/ticketrilla-server-settings.php:532
     700msgid "name for your bot"
     701msgstr ""
     702
     703#: includes/admin/templates/page/ticketrilla-server-settings.php:533
     704msgid "username for your bot with end in 'bot'"
     705msgstr ""
     706
     707#: includes/admin/templates/page/ticketrilla-server-settings.php:535
     708msgid "You get a token."
     709msgstr ""
     710
     711#: includes/admin/templates/page/ticketrilla-server-settings.php:559
     712msgid "Chat ID"
     713msgstr ""
     714
     715#: includes/admin/templates/page/ticketrilla-server-settings.php:563
     716msgid "For getting a Chat ID you have to:"
     717msgstr ""
     718
     719#: includes/admin/templates/page/ticketrilla-server-settings.php:565
     720msgid "create bot and to get a token"
     721msgstr ""
     722
     723#: includes/admin/templates/page/ticketrilla-server-settings.php:566
     724msgid "create new group and to add your bot in it"
     725msgstr ""
     726
     727#: includes/admin/templates/page/ticketrilla-server-settings.php:567
     728msgid "add bot @MyChatInfoBot on this group"
     729msgstr ""
     730
     731#: includes/admin/templates/page/ticketrilla-server-settings.php:568
     732msgid "@MyChatInfoBot will give Chat ID and will leave the group"
     733msgstr ""
     734
     735#: includes/admin/templates/page/ticketrilla-server-settings.php:569
     736msgid "Chat ID may be with minus (\"-\"). You sholud copy Chat ID with it"
     737msgstr ""
     738
     739#: includes/admin/templates/page/ticketrilla-server-settings.php:571
     740msgid "You get a Chat ID."
     741msgstr ""
     742
     743#: includes/admin/templates/page/ticketrilla-server-settings.php:598
    662744msgid "Attachments settings"
    663745msgstr ""
    664746
    665 #: includes/admin/templates/page/ticketrilla-server-settings.php:490
     747#: includes/admin/templates/page/ticketrilla-server-settings.php:606
    666748msgid "Maximum file size"
    667749msgstr ""
    668750
    669 #: includes/admin/templates/page/ticketrilla-server-settings.php:494
     751#: includes/admin/templates/page/ticketrilla-server-settings.php:610
    670752msgid "When the maximum file size is exceeded, the files will be linked from the client's site"
    671753msgstr ""
    672754
    673 #: includes/admin/templates/page/ticketrilla-server-settings.php:506
     755#: includes/admin/templates/page/ticketrilla-server-settings.php:622
    674756#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:361
    675757msgid "MB"
    676758msgstr ""
    677759
    678 #: includes/admin/templates/page/ticketrilla-server-settings.php:520
     760#: includes/admin/templates/page/ticketrilla-server-settings.php:636
    679761msgid "Auto-load attachments"
    680762msgstr ""
    681763
    682 #: includes/admin/templates/page/ticketrilla-server-settings.php:524
     764#: includes/admin/templates/page/ticketrilla-server-settings.php:640
    683765msgid "When enabled - a copy of the attachments will be automatically loaded to the developer's server"
    684766msgstr ""
    685767
    686 #: includes/admin/templates/page/ticketrilla-server-settings.php:534
     768#: includes/admin/templates/page/ticketrilla-server-settings.php:650
    687769msgid "Maximum upload timeout"
    688770msgstr ""
    689771
    690 #: includes/admin/templates/page/ticketrilla-server-settings.php:538
     772#: includes/admin/templates/page/ticketrilla-server-settings.php:654
    691773msgid "A time limitation for loading attachments to the server"
    692774msgstr ""
    693775
    694 #: includes/admin/templates/page/ticketrilla-server-settings.php:550
     776#: includes/admin/templates/page/ticketrilla-server-settings.php:666
    695777msgid "sec."
    696778msgstr ""
    697779
    698 #: includes/admin/templates/page/ticketrilla-server-settings.php:564
     780#: includes/admin/templates/page/ticketrilla-server-settings.php:680
    699781msgid "Support subscription requirement for attachments"
    700782msgstr ""
    701783
    702 #: includes/admin/templates/page/ticketrilla-server-settings.php:568
     784#: includes/admin/templates/page/ticketrilla-server-settings.php:684
    703785msgid "When enabled - only the clients with active support subscription will be able to upload attachments"
    704786msgstr ""
    705787
    706 #: includes/admin/templates/page/ticketrilla-server-settings.php:584
    707 #: includes/admin/templates/page/ticketrilla-server-settings.php:635
     788#: includes/admin/templates/page/ticketrilla-server-settings.php:700
     789#: includes/admin/templates/page/ticketrilla-server-settings.php:751
    708790msgid "Password reset via email"
    709791msgstr ""
    710792
    711 #: includes/admin/templates/page/ticketrilla-server-settings.php:589
     793#: includes/admin/templates/page/ticketrilla-server-settings.php:705
    712794msgid "Restoring access email"
    713795msgstr ""
    714796
    715 #: includes/admin/templates/page/ticketrilla-server-settings.php:592
    716 #: includes/admin/templates/page/ticketrilla-server-settings.php:638
     797#: includes/admin/templates/page/ticketrilla-server-settings.php:708
     798#: includes/admin/templates/page/ticketrilla-server-settings.php:754
    717799msgid "Email title"
    718800msgstr ""
    719801
    720 #: includes/admin/templates/page/ticketrilla-server-settings.php:596
    721 #: includes/admin/templates/page/ticketrilla-server-settings.php:619
    722 #: includes/admin/templates/page/ticketrilla-server-settings.php:642
    723 #: includes/admin/templates/page/ticketrilla-server-settings.php:666
     802#: includes/admin/templates/page/ticketrilla-server-settings.php:712
     803#: includes/admin/templates/page/ticketrilla-server-settings.php:735
     804#: includes/admin/templates/page/ticketrilla-server-settings.php:758
     805#: includes/admin/templates/page/ticketrilla-server-settings.php:782
    724806msgid "Email variables"
    725807msgstr ""
    726808
    727 #: includes/admin/templates/page/ticketrilla-server-settings.php:598
    728 #: includes/admin/templates/page/ticketrilla-server-settings.php:621
    729 #: includes/admin/templates/page/ticketrilla-server-settings.php:644
    730 #: includes/admin/templates/page/ticketrilla-server-settings.php:668
     809#: includes/admin/templates/page/ticketrilla-server-settings.php:714
     810#: includes/admin/templates/page/ticketrilla-server-settings.php:737
     811#: includes/admin/templates/page/ticketrilla-server-settings.php:760
     812#: includes/admin/templates/page/ticketrilla-server-settings.php:784
    731813msgid "secure code"
    732814msgstr ""
    733815
    734 #: includes/admin/templates/page/ticketrilla-server-settings.php:600
    735 #: includes/admin/templates/page/ticketrilla-server-settings.php:623
    736 #: includes/admin/templates/page/ticketrilla-server-settings.php:646
    737 #: includes/admin/templates/page/ticketrilla-server-settings.php:670
     816#: includes/admin/templates/page/ticketrilla-server-settings.php:716
     817#: includes/admin/templates/page/ticketrilla-server-settings.php:739
     818#: includes/admin/templates/page/ticketrilla-server-settings.php:762
     819#: includes/admin/templates/page/ticketrilla-server-settings.php:786
    738820msgid "password"
    739821msgstr ""
    740822
    741 #: includes/admin/templates/page/ticketrilla-server-settings.php:601
    742 #: includes/admin/templates/page/ticketrilla-server-settings.php:624
    743 #: includes/admin/templates/page/ticketrilla-server-settings.php:647
    744 #: includes/admin/templates/page/ticketrilla-server-settings.php:671
     823#: includes/admin/templates/page/ticketrilla-server-settings.php:717
     824#: includes/admin/templates/page/ticketrilla-server-settings.php:740
     825#: includes/admin/templates/page/ticketrilla-server-settings.php:763
     826#: includes/admin/templates/page/ticketrilla-server-settings.php:787
    745827msgid "product name"
    746828msgstr ""
    747829
    748 #: includes/admin/templates/page/ticketrilla-server-settings.php:615
    749 #: includes/admin/templates/page/ticketrilla-server-settings.php:662
     830#: includes/admin/templates/page/ticketrilla-server-settings.php:731
     831#: includes/admin/templates/page/ticketrilla-server-settings.php:778
    750832msgid "Email text"
    751833msgstr ""
    752834
    753 #: includes/admin/templates/page/ticketrilla-server-settings.php:692
     835#: includes/admin/templates/page/ticketrilla-server-settings.php:808
    754836msgid "Standard license settings"
    755837msgstr ""
    756838
    757 #: includes/admin/templates/page/ticketrilla-server-settings.php:712
     839#: includes/admin/templates/page/ticketrilla-server-settings.php:828
    758840msgid "Enable standard licensing"
    759841msgstr ""
    760842
    761 #: includes/admin/templates/page/ticketrilla-server-settings.php:728
     843#: includes/admin/templates/page/ticketrilla-server-settings.php:844
    762844msgid "Unlimited users"
    763845msgstr ""
    764846
    765 #: includes/admin/templates/page/ticketrilla-server-settings.php:732
     847#: includes/admin/templates/page/ticketrilla-server-settings.php:848
    766848msgid "When enabled - unlimited amount of users will be allowed to use the same license"
    767849msgstr ""
    768850
    769 #: includes/admin/templates/page/ticketrilla-server-settings.php:750
     851#: includes/admin/templates/page/ticketrilla-server-settings.php:866
    770852msgid "Confirmed standard license"
    771853msgstr ""
    772854
    773 #: includes/admin/templates/page/ticketrilla-server-settings.php:754
     855#: includes/admin/templates/page/ticketrilla-server-settings.php:870
    774856msgid "Licenses linked via the client plugin will be confirmed"
    775857msgstr ""
    776858
    777 #: includes/admin/templates/page/ticketrilla-server-settings.php:771
     859#: includes/admin/templates/page/ticketrilla-server-settings.php:887
    778860msgid "Standard license support present"
    779861msgstr ""
    780862
    781 #: includes/admin/templates/page/ticketrilla-server-settings.php:775
     863#: includes/admin/templates/page/ticketrilla-server-settings.php:891
    782864msgid "Licenses linked via the client plugin will have an active subscription enabled"
    783865msgstr ""
    784866
    785 #: includes/admin/templates/page/ticketrilla-server-settings.php:784
     867#: includes/admin/templates/page/ticketrilla-server-settings.php:900
    786868msgid "Link for extending standard license support period "
    787869msgstr ""
    788870
    789 #: includes/admin/templates/page/ticketrilla-server-settings.php:798
     871#: includes/admin/templates/page/ticketrilla-server-settings.php:914
    790872msgid "License expiry date"
    791873msgstr ""
    792874
    793 #: includes/admin/templates/page/ticketrilla-server-settings.php:802
     875#: includes/admin/templates/page/ticketrilla-server-settings.php:918
    794876msgid "Amount of license days remaining - starting from the creation date"
    795877msgstr ""
    796878
    797 #: includes/admin/templates/page/ticketrilla-server-settings.php:838
     879#: includes/admin/templates/page/ticketrilla-server-settings.php:954
    798880msgid "Generate inclusion code"
    799881msgstr ""
    800882
    801 #: includes/admin/templates/page/ticketrilla-server-settings.php:845
     883#: includes/admin/templates/page/ticketrilla-server-settings.php:961
    802884msgid "Server"
    803885msgstr ""
    804886
    805 #: includes/admin/templates/page/ticketrilla-server-settings.php:851
     887#: includes/admin/templates/page/ticketrilla-server-settings.php:967
    806888msgid "Description"
    807889msgstr ""
    808890
    809 #: includes/admin/templates/page/ticketrilla-server-settings.php:856
     891#: includes/admin/templates/page/ticketrilla-server-settings.php:972
    810892msgid "Generate"
    811893msgstr ""
     
    815897msgstr ""
    816898
    817 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:6
    818 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:47
     899#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:7
     900#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:48
    819901#: includes/admin/templates/page/ticketrilla-server-tickets.php:27
    820902msgid "Unassigned"
    821903msgstr ""
    822904
    823 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:7
     905#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:8
    824906#: includes/admin/templates/page/ticketrilla-server-tickets.php:33
    825907msgid "Pending"
    826908msgstr ""
    827909
    828 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:8
     910#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:9
    829911#: includes/admin/templates/page/ticketrilla-server-tickets.php:30
    830912msgid "Replied"
    831913msgstr ""
    832914
    833 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:9
     915#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:10
    834916#: includes/admin/templates/page/ticketrilla-server-tickets.php:36
    835917msgid "Third side"
    836918msgstr ""
    837919
    838 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:10
     920#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:11
    839921#: includes/admin/templates/page/ticketrilla-server-tickets.php:39
    840922msgid "Closed"
    841923msgstr ""
    842924
    843 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:25
    844 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:35
    845 msgid "Status"
    846 msgstr ""
    847 
    848925#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:26
    849926#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:36
     927msgid "Status"
     928msgstr ""
     929
     930#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:27
     931#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:37
    850932msgid "Title"
    851 msgstr ""
    852 
    853 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:28
    854 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:38
    855 msgid "Agent"
    856933msgstr ""
    857934
    858935#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:29
    859936#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:39
    860 msgid "Latest response"
     937msgid "Agent"
    861938msgstr ""
    862939
    863940#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:30
    864941#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:40
     942msgid "Latest response"
     943msgstr ""
     944
     945#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:31
     946#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:41
    865947#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:118
    866948#: includes/core/class-common.php:80
     
    868950msgstr ""
    869951
    870 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:48
     952#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:49
    871953msgid "pending"
    872954msgstr ""
    873955
    874 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:49
     956#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:50
    875957msgid "replied"
    876958msgstr ""
    877959
    878 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:50
     960#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:51
    879961msgid "third side"
    880962msgstr ""
    881963
    882 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:51
     964#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:52
    883965msgid "closed"
    884966msgstr ""
    885967
    886 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:125
     968#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:129
    887969msgid "Latest"
    888970msgstr ""
     
    9321014#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:291
    9331015#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:367
    934 #: includes/core/class-ticket.php:1410
     1016#: includes/core/class-ticket.php:1437
    9351017msgid "Available ticket"
    9361018msgstr ""
     
    9391021#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:292
    9401022#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:368
    941 #: includes/core/class-ticket.php:1413
     1023#: includes/core/class-ticket.php:1440
    9421024msgid "Waiting for agent's response"
    9431025msgstr ""
     
    9461028#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:293
    9471029#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:369
    948 #: includes/core/class-ticket.php:1411
     1030#: includes/core/class-ticket.php:1438
    9491031msgid "Agent replied"
    9501032msgstr ""
     
    9531035#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:294
    9541036#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:370
    955 #: includes/core/class-ticket.php:1412
     1037#: includes/core/class-ticket.php:1439
    9561038msgid "Waiting for third side"
    9571039msgstr ""
     
    9911073#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:204
    9921074#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:322
    993 #: includes/core/class-ticket.php:896 includes/core/class-ticket.php:1539
     1075#: includes/core/class-ticket.php:912 includes/core/class-ticket.php:1565
    9941076msgid "Client was refunded"
    9951077msgstr ""
     
    10801162#: includes/admin/templates/page/ticketrilla-server-users.php:268
    10811163#: includes/core/class-attachments.php:174
    1082 #: includes/core/class-attachments.php:305
    1083 #: includes/core/class-attachments.php:319
    1084 #: includes/core/class-attachments.php:346
    1085 #: includes/core/class-attachments.php:359
    1086 #: includes/core/class-attachments.php:374
    1087 #: includes/core/class-attachments.php:411
    1088 #: includes/core/class-attachments.php:423 includes/core/class-licenses.php:148
     1164#: includes/core/class-attachments.php:306
     1165#: includes/core/class-attachments.php:320
     1166#: includes/core/class-attachments.php:347
     1167#: includes/core/class-attachments.php:360
     1168#: includes/core/class-attachments.php:375
     1169#: includes/core/class-attachments.php:412
     1170#: includes/core/class-attachments.php:424 includes/core/class-licenses.php:148
    10891171msgid "Delete"
    10901172msgstr ""
     
    11591241#: includes/core/class-attachments.php:159
    11601242#: includes/core/class-attachments.php:174
    1161 #: includes/core/class-attachments.php:305
    1162 #: includes/core/class-attachments.php:319
    1163 #: includes/core/class-attachments.php:346
    1164 #: includes/core/class-attachments.php:359
    1165 #: includes/core/class-attachments.php:374
    1166 #: includes/core/class-attachments.php:411
    1167 #: includes/core/class-attachments.php:423
     1243#: includes/core/class-attachments.php:306
     1244#: includes/core/class-attachments.php:320
     1245#: includes/core/class-attachments.php:347
     1246#: includes/core/class-attachments.php:360
     1247#: includes/core/class-attachments.php:375
     1248#: includes/core/class-attachments.php:412
     1249#: includes/core/class-attachments.php:424
    11681250msgid "Delete this attachment"
    11691251msgstr ""
     
    11731255msgstr ""
    11741256
    1175 #: includes/core/class-attachments.php:314
     1257#: includes/core/class-attachments.php:315
    11761258msgid "You do not have sufficient permissions to write to folder: "
    11771259msgstr ""
    11781260
    1179 #: includes/core/class-attachments.php:341
     1261#: includes/core/class-attachments.php:342
    11801262msgid "Can't zip file."
    11811263msgstr ""
    11821264
    1183 #: includes/core/class-attachments.php:354
     1265#: includes/core/class-attachments.php:355
    11841266msgid "Unable to write file"
    11851267msgstr ""
    11861268
    1187 #: includes/core/class-attachments.php:369
     1269#: includes/core/class-attachments.php:370
    11881270msgid "Unable to generate md5 for file"
    11891271msgstr ""
    11901272
    1191 #: includes/core/class-attachments.php:418
     1273#: includes/core/class-attachments.php:419
    11921274msgid "No ticket ID"
    11931275msgstr ""
    11941276
    1195 #: includes/core/class-attachments.php:431 includes/core/class-ticket.php:614
     1277#: includes/core/class-attachments.php:432 includes/core/class-ticket.php:632
    11961278msgid "No attachments"
    11971279msgstr ""
    11981280
    1199 #: includes/core/class-attachments.php:794
     1281#: includes/core/class-attachments.php:795
    12001282msgid "All attachments are linked"
    12011283msgstr ""
    12021284
    1203 #: includes/core/class-attachments.php:834
     1285#: includes/core/class-attachments.php:836
    12041286msgid "An attachment with the specified ID does not exist"
    12051287msgstr ""
    12061288
    1207 #: includes/core/class-attachments.php:859
     1289#: includes/core/class-attachments.php:862
    12081290msgid "Attachment deleted"
    12091291msgstr ""
     
    14601542msgstr ""
    14611543
    1462 #: includes/core/class-ticket.php:381
     1544#: includes/core/class-ticket.php:393
    14631545msgid "Incorrect ticket status - current status remains"
    14641546msgstr ""
    14651547
    1466 #: includes/core/class-ticket.php:620
     1548#: includes/core/class-ticket.php:638
    14671549msgid "The ticket was added to the database"
    14681550msgstr ""
    14691551
    1470 #: includes/core/class-ticket.php:722 includes/core/class-ticket.php:1007
     1552#: includes/core/class-ticket.php:740
    14711553msgid "Free ticket"
    14721554msgstr ""
    14731555
    1474 #: includes/core/class-ticket.php:783
     1556#: includes/core/class-ticket.php:801
    14751557msgid "There are no free tickets"
    14761558msgstr ""
    14771559
    1478 #: includes/core/class-ticket.php:790
     1560#: includes/core/class-ticket.php:808
    14791561msgid "Take"
    14801562msgstr ""
    14811563
    1482 #: includes/core/class-ticket.php:804 includes/core/class-ticket.php:844
     1564#: includes/core/class-ticket.php:822 includes/core/class-ticket.php:862
    14831565msgid "Submit a ticket ID for editing"
    14841566msgstr ""
    14851567
    1486 #: includes/core/class-ticket.php:823 includes/core/class-ticket.php:865
     1568#: includes/core/class-ticket.php:841 includes/core/class-ticket.php:879
    14871569msgid "Received ticket - in the works"
    14881570msgstr ""
    14891571
    1490 #: includes/core/class-ticket.php:824
     1572#: includes/core/class-ticket.php:842
    14911573msgid "To ticket"
    14921574msgstr ""
    14931575
    1494 #: includes/core/class-ticket.php:829 includes/core/class-ticket.php:868
     1576#: includes/core/class-ticket.php:847
    14951577msgid "An error encountered while updating the database"
    14961578msgstr ""
    14971579
    1498 #: includes/core/class-ticket.php:832
     1580#: includes/core/class-ticket.php:850
    14991581msgid "This ticket is already being handled by another agent"
    15001582msgstr ""
    15011583
    1502 #: includes/core/class-ticket.php:835
     1584#: includes/core/class-ticket.php:853
    15031585msgid "You do not have sufficient rights for working with tickets"
    15041586msgstr ""
    15051587
    1506 #: includes/core/class-ticket.php:877
     1588#: includes/core/class-ticket.php:893
    15071589msgid "This status is already set"
    15081590msgstr ""
    15091591
    1510 #: includes/core/class-ticket.php:882
     1592#: includes/core/class-ticket.php:898
    15111593msgid "Specify a reason for closing this ticket"
    15121594msgstr ""
    15131595
    1514 #: includes/core/class-ticket.php:890 includes/core/class-ticket.php:1533
     1596#: includes/core/class-ticket.php:906 includes/core/class-ticket.php:1559
    15151597msgid "The issue has been resolved"
    15161598msgstr ""
    15171599
    1518 #: includes/core/class-ticket.php:893 includes/core/class-ticket.php:1536
     1600#: includes/core/class-ticket.php:909 includes/core/class-ticket.php:1562
    15191601msgid "Client closed the issue"
    15201602msgstr ""
    15211603
    1522 #: includes/core/class-ticket.php:913 includes/core/class-ticket.php:1414
     1604#: includes/core/class-ticket.php:929 includes/core/class-ticket.php:1441
    15231605msgid "Ticket closed"
    15241606msgstr ""
    15251607
    1526 #: includes/core/class-ticket.php:916 includes/core/class-ticket.php:990
     1608#: includes/core/class-ticket.php:932 includes/core/class-ticket.php:1002
    15271609msgid "Status changed"
    15281610msgstr ""
    15291611
    1530 #: includes/core/class-ticket.php:929
     1612#: includes/core/class-ticket.php:945
    15311613msgid "Status and agent has been changed"
    15321614msgstr ""
    15331615
    1534 #: includes/core/class-ticket.php:953
     1616#: includes/core/class-ticket.php:965
    15351617msgid "This agent is already working on this ticket"
    15361618msgstr ""
    15371619
    1538 #: includes/core/class-ticket.php:969 includes/core/class-ticket.php:996
     1620#: includes/core/class-ticket.php:981 includes/core/class-ticket.php:1008
    15391621msgid "Agent changed"
    15401622msgstr ""
    15411623
    1542 #: includes/core/class-ticket.php:972
     1624#: includes/core/class-ticket.php:984
    15431625msgid "Status or agent is not specified"
    15441626msgstr ""
    15451627
    1546 #: includes/core/class-ticket.php:974
     1628#: includes/core/class-ticket.php:986
    15471629msgid "This ticket is being handled by another agent"
    15481630msgstr ""
    15491631
    1550 #: includes/core/class-ticket.php:976
     1632#: includes/core/class-ticket.php:988
    15511633msgid "You do not have sufficient rights for updating this ticket"
    15521634msgstr ""
    15531635
    1554 #: includes/core/class-ticket.php:986
     1636#: includes/core/class-ticket.php:998
    15551637msgid "No changes"
    15561638msgstr ""
    15571639
    1558 #: includes/core/class-ticket.php:994
     1640#: includes/core/class-ticket.php:1006
    15591641msgid "Status and agent were changed"
    15601642msgstr ""
    15611643
    1562 #: includes/core/class-ticket.php:1241 includes/core/class-ticket.php:1242
     1644#: includes/core/class-ticket.php:1268 includes/core/class-ticket.php:1269
    15631645msgid "System"
    15641646msgstr ""
    15651647
    1566 #: includes/core/class-ticket.php:1333
     1648#: includes/core/class-ticket.php:1360
    15671649msgid "%1$s has received the ticket - in the works"
    15681650msgstr ""
    15691651
    1570 #: includes/core/class-ticket.php:1334
     1652#: includes/core/class-ticket.php:1361
    15711653msgid "%1$s has reassigned this ticket to %3$s"
    15721654msgstr ""
    15731655
    1574 #: includes/core/class-ticket.php:1335
     1656#: includes/core/class-ticket.php:1362
    15751657msgid "%1$s has reopened the ticket and reassigned to %3$s"
    15761658msgstr ""
    15771659
    1578 #: includes/core/class-ticket.php:1336
     1660#: includes/core/class-ticket.php:1363
    15791661msgid "%1$s has changed status to %2$s"
    15801662msgstr ""
    15811663
    1582 #: includes/core/class-ticket.php:1337
     1664#: includes/core/class-ticket.php:1364
    15831665msgid "%1$s has changed status to %2$s and reassigned this ticket to %3$s"
    15841666msgstr ""
    15851667
    1586 #: includes/core/class-ticket.php:1338
     1668#: includes/core/class-ticket.php:1365
    15871669msgid "%1$s has reopened the ticket and changed status to %2$s"
    15881670msgstr ""
    15891671
    1590 #: includes/core/class-ticket.php:1339
     1672#: includes/core/class-ticket.php:1366
    15911673msgid "%1$s has reopened the ticket, changed status to %2$s and reassigned to %3$s"
    15921674msgstr ""
    15931675
    1594 #: includes/core/class-ticket.php:1340
     1676#: includes/core/class-ticket.php:1367
    15951677msgid "%1$s has closed the ticket"
    15961678msgstr ""
    15971679
    1598 #: includes/core/class-ticket.php:1341
     1680#: includes/core/class-ticket.php:1368
    15991681msgid "%1$s has replied"
    16001682msgstr ""
    16011683
    1602 #: includes/core/class-ticket.php:1342
     1684#: includes/core/class-ticket.php:1369
    16031685msgid "Old system message"
    16041686msgstr ""
    16051687
    1606 #: includes/core/class-ticket.php:1343
     1688#: includes/core/class-ticket.php:1370
    16071689msgid "%1$s has added the ticket"
    16081690msgstr ""
    16091691
    1610 #: includes/core/class-ticket.php:1587
     1692#: includes/core/class-ticket.php:1613
    16111693msgid "Response added"
    16121694msgstr ""
     
    17811863
    17821864#. Description of the plugin/theme
    1783 msgid "Support for ‘Ticketrilla: Server’ - an innovative ticketing and licensing system."
     1865msgid "Developer's plugin for support of WordPress products"
    17841866msgstr ""
    17851867
  • ticketrilla-server/tags/v.1.0.3/readme.txt

    r2172712 r2387080  
    44Tags: ticket system, ticket, helpdesk, support, license, envato licensing, support system, support center
    55Requires at least: 4.9.1
    6 Tested up to: 5.2.3
     6Tested up to: 5.5.1
    77Stable tag: trunk
    88Requires PHP: 5.6.0
     
    3939<li>Full security of file transfering, including the executable code</li>
    4040<li>Duplication of tickets on client's server. Client can view tickets even when the your server is disconnected</li>
     41<li>Additional functionality from many addons</li>
    4142</ul>
    4243
     
    5657
    5758== Changelog ==
     59= 1.0.4 =
     60* Added notifications for Telegram
     61* Fixed minor issues
    5862= 1.0.3 =
    5963* Release Date on WordPress catalog - 10 Octomber 2019
  • ticketrilla-server/tags/v.1.0.3/ticketrilla-server.php

    r2172146 r2387080  
    55Author: Daniil Babkin
    66Description: Developer's plugin for support of WordPress products
    7 Version: 1.0.3
     7Version: 1.0.4
    88Text Domain: ttls_translate
     9*/
     10
     11/*
     12TTL Server: https://support.ticketrilla.com
     13TTL Description: Support for "Ticketrilla: Server" - an innovative ticketing and licensing system.
     14TTL Slug: ticketrilla-server
    915*/
    1016
     
    3339    define( 'TTLS_PATH', plugin_dir_path( __FILE__ ) );
    3440    define( 'TTLS_PLUGIN', plugin_basename( __FILE__ ) );
    35     define( 'TTLS_PLUGIN_VERSION', '1.0.3' );
     41    define( 'TTLS_PLUGIN_VERSION', '1.0.4' );
    3642
    3743
  • ticketrilla-server/trunk/includes/admin/assets/css/main.css

    r2172146 r2387080  
    1221412214  background-color: #fff;
    1221512215}
     12216#ttls__settings-menu {
     12217  position: static;
     12218  top: 64px;
     12219}
    1221612220.ttls__settings-inner.affix {
    1221712221  top: 24px;
     
    1271212716  left: 0;
    1271312717}
     12718.ttls__label-info-hidden ol {
     12719    margin-top: 6px;
     12720    margin-bottom: 0;
     12721}
    1271412722.ttls .ttls__tickets-responses-body ul {
    1271512723  list-style-position: inside;
  • ticketrilla-server/trunk/includes/admin/assets/js/ticketrilla.js

    r2172146 r2387080  
    6868        var $settingMenuParent = $("#ttls__settings-menu").parent();
    6969        $(window).on("scroll", function () {
    70             if ( $(window).scrollTop() + 64 > $settingMenuParent.offset().top ) {
     70            if ( $( window ).width() > 992 && $(window).scrollTop() + 64 > $settingMenuParent.offset().top ) {
    7171                var marginTop = $(window).scrollTop() - $settingMenuParent.offset().top + 64;
    7272
    7373                if ( $settingMenuParent.next().height() > $settingMenu.height() + marginTop ) {
    74                     $settingMenu.css("margin-top", marginTop );
     74                    $settingMenu.css("position", "fixed");
     75                    var $parentWidth = $settingMenuParent.width();
     76                    $settingMenu.css("width", $parentWidth);
    7577                }
    7678
    7779            } else {
    78                 $settingMenu.css("margin-top", 0 );
     80                $settingMenu.css("position", "static");
    7981            }
    8082        });
     
    8991                }, 400);
    9092            }
     93        });
     94       
     95        $(window).on("resize", function () {
     96            var $parentWidth = $settingMenuParent.width();
     97            $settingMenu.css("width", $parentWidth);
    9198        });
    9299    }
     
    409416                        $(".ttls__tickets-responses").append( response.data.box );
    410417                    }
     418                    wp.heartbeat.connectNow();
    411419                } else {
    412420                    ttlsAddAlert( "danger", "",response.data.message );
     
    985993
    986994        }
     995       
     996        $(document).on('heartbeat-tick', function(e, data){
     997            var countEl = $('.ttls__pending-tickets-count');
     998            if(!countEl.length) return;
     999   
     1000            if(data.ttls_pending_tickets_count){
     1001                countEl.text(data.ttls_pending_tickets_count).removeClass('count-0');
     1002            } else {
     1003                countEl.addClass('count-0');
     1004            }
     1005        });
    9871006
    9881007}(jQuery));
     
    10031022            "<span aria-hidden=\"true\">&times;</span></button>" +
    10041023            "<strong>" + title + "</strong> " + message + "</div>";
    1005     $(alert).prependTo( ".ttls__alerts" ).fadeIn(500).delay(2000).fadeOut(400).queue(function() { $(this).remove(); });
     1024    jQuery(alert).prependTo( ".ttls__alerts" ).fadeIn(500).delay(2000).fadeOut(400).queue(function() { jQuery(this).remove(); });
    10061025}
    10071026
    10081027function ttlsUpdateTicketResponseHandler( response ) {
    10091028    if ( response.success ) {
     1029        wp.heartbeat.connectNow();
    10101030        ttlsAddAlert( "success", "", response.data.message );
    10111031        if ( getParameterByName("order") == "DESC" ) {
    1012             $(".ttls__tickets-responses").prepend( response.data.box );
     1032            jQuery(".ttls__tickets-responses").prepend( response.data.box );
    10131033        } else {
    1014             $(".ttls__tickets-responses").append( response.data.box );
     1034            jQuery(".ttls__tickets-responses").append( response.data.box );
    10151035        }
    10161036    } else {
  • ticketrilla-server/trunk/includes/admin/core/class-enqueue.php

    r2172146 r2387080  
    4848                );
    4949                foreach ( $array_scripts as $key => $value ) {
    50                     wp_enqueue_script( "ttls_admin_{$key}", $this->js_url . $value, array( 'jquery', 'jquery-ui-datepicker' ), filemtime( TTLS_PATH . $this->js_path . $value ), true );
     50                    wp_enqueue_script( "ttls_admin_{$key}", $this->js_url . $value, array( 'jquery', 'jquery-ui-datepicker', 'heartbeat' ), filemtime( TTLS_PATH . $this->js_path . $value ), true );
    5151                }
    5252
  • ticketrilla-server/trunk/includes/admin/core/class-page.php

    r2172146 r2387080  
    3535                // update used licenses
    3636                add_filter( 'ttls_check_option-ttls_active_licenses_standard', array( $this, 'check_active_licenses' ) );
     37                add_filter( 'ttls_check_option-ttls_product_description', array( $this, 'check_product_description' ) );
     38                add_filter( 'ttls_check_option-ttls_notifications_telegram_token', array( $this, 'check_notifications_telegram_token') );
     39                add_filter( 'ttls_check_option-ttls_notifications_telegram_chat_id', array( $this, 'check_notifications_telegram_chat_id') );
    3740            }
    3841
     
    116119                return $data;
    117120            }
     121           
     122            function check_product_description( $data ) {
     123                $data = wp_unslash( $data );
     124                return $data;
     125            }
     126           
     127            public function check_notifications_telegram_token( $data ) {
     128                $check = ttls_telegram_get_me( $data['value'] );
     129                if ( $check ) {
     130                    $check = json_decode( $check );
     131                }
     132                if ( empty( $check->ok ) || ! $check->ok ) {
     133                    return array( 'error' => esc_html__('Token is invalid', 'ttls_translate') );
     134                }
     135                return $data;
     136            }
     137           
     138            public function check_notifications_telegram_chat_id( $data ) {
     139                $token = get_option( 'ttls_notifications_telegram_token', '' );
     140               
     141                if ( ! $token ) {
     142                    return array( 'error' => esc_html__('First enter valid token', 'ttls_translate') );
     143                }
     144               
     145                $check = ttls_telegram_get_chat( $token, $data['value'] );
     146                if ( $check ) {
     147                    $check = json_decode( $check );
     148                }
     149                if ( empty( $check->ok ) || ! $check->ok ) {
     150                    return array( 'error' => esc_html__('Chat ID is invalid', 'ttls_translate') );
     151                }
     152                return $data;
     153            }
    118154
    119155            function update_profile(){
     
    240276             */
    241277            function primary_admin_menu() {
     278               
     279                $pending_tickets_count = get_option( 'ttls_pending_tickets_count' );
     280               
    242281                $this->subpages = apply_filters( 'ttls_admin_subpages', array(
    243282                    'ttls-dashboard'  => array(
     
    252291                        'parent_slug' => $this->slug,
    253292                        'page_title'  => esc_html__( 'Tickets', 'ttls_translate' ),
    254                         'menu_title'  => esc_html__( 'Tickets', 'ttls_translate' ),
     293                        'menu_title'  => esc_html__( 'Tickets', 'ttls_translate' ) . ( $pending_tickets_count ? sprintf( ' <span class="ttls__pending-tickets-count update-plugins">%d</span>', $pending_tickets_count ) : ' <span class="ttls__pending-tickets-count update-plugins count-0"></span>' ),
    255294                        'capability'  => 'ttls_developers',
    256295                        'menu_slug'   => $this->slug . '-tickets',
     
    307346                if ( ! empty( $this->subpages ) ) {
    308347                    foreach ( $this->subpages as $subpage ) {
     348                        $position = empty( $subpage['position'] ) ? null : $subpage['position'];
    309349                        add_submenu_page( $subpage['parent_slug'], $subpage['page_title'], $subpage['menu_title'],
    310                             $subpage['capability'], $subpage['menu_slug'], $subpage['function'] );
     350                            $subpage['capability'], $subpage['menu_slug'], $subpage['function'], $position );
    311351                    }
    312352                }
  • ticketrilla-server/trunk/includes/admin/templates/page/ticketrilla-server-addons.php

    r2172146 r2387080  
    2525        <div class="ttls__cards">
    2626            <?php foreach ( $addon_list as $addon) {
    27                 if ( !empty( $addon->plugin ) AND is_plugin_active( $addon->plugin ) ) {
     27                if ( !empty( $addon->plugin ) AND is_plugin_active( (string) $addon->plugin ) ) {
    2828                    $installed_plugin = get_plugin_data( WP_PLUGIN_DIR.'/'.$addon->plugin );
    2929                    $active_addons .= '<tr>';
  • ticketrilla-server/trunk/includes/admin/templates/page/ticketrilla-server-licences.php

    r2172146 r2387080  
    8787                                $tmp_u_d['rowspan'] = 1;
    8888                                $tmp_u_d['login'] = esc_html__('No owners', 'ttls_translate');
     89                                $tmp_u_d['name'] = '';
     90                                $tmp_u_d['email'] = '';
    8991                                $row_user_data[] = $tmp_u_d;
    9092                            }
  • ticketrilla-server/trunk/includes/admin/templates/page/ticketrilla-server-settings.php

    r2172146 r2387080  
    2727                                <li><a href="#ttls__product" data-scroll><?php echo esc_html__('Product', 'ttls_translate'); ?></a></li>
    2828                                <li><a href="#ttls__ticket" data-scroll><?php echo esc_html__('Tickets', 'ttls_translate'); ?></a></li>
     29                                <li><a href="#ttls__notifications" data-scroll><?php echo esc_html__('Notifications', 'ttls_translate'); ?></a></li>
    2930                                <li><a href="#ttls__attachment" data-scroll><?php echo esc_html__('Attachments', 'ttls_translate'); ?></a></li>
    3031                                <li><a href="#ttls__password" data-scroll><?php echo esc_html__('Reset password', 'ttls_translate'); ?></a></li>
     
    478479                        </div>
    479480                    </form>
     481
     482                    <form action="#" id="ttls__notifications" class="ttls__settings-inner ttls-setting-form">
     483                        <div class="ttls__settings-inner-header">
     484                            <h4><?php echo esc_html__('New events notifications', 'ttls_translate'); ?></h4>
     485                        </div>
     486                        <div class="ttls__settings-inner-body">
     487                            <div class="row">
     488                                <div class="col-md-6">
     489                                    <div class="form-group">
     490                                        <div class="checkbox">
     491                                        <?php
     492                                            $input_id = 'ttls__notificationsSettings-telegram-enable';
     493                                            $input_name = 'ttls_notifications_telegram_enable';
     494                                        ?>
     495                                            <input type="hidden" name="<?php echo esc_attr( $input_name ); ?>" value="">
     496                                            <input
     497                                                id="<?php echo esc_attr( $input_id ); ?>"
     498                                                data-name="<?php echo esc_attr( $input_id ); ?>"
     499                                                name="<?php echo esc_attr( $input_name ); ?>"
     500                                                type="checkbox"
     501                                                value="true"
     502                                                class="form-control"
     503                                                <?php echo get_option($input_name, false) ? 'checked' : ''; ?>
     504                                            >
     505                                        <label for="<?php echo esc_attr( $input_id ); ?>">
     506                                            <?php echo esc_html__('Enable for Telegram', 'ttls_translate'); ?>
     507                                            <div class="ttls__label-info">
     508                                                <i class="fa fa-question-circle-o" aria-hidden="true"></i>
     509                                                <div class="ttls__label-info-hidden">
     510                                                    <?php echo esc_html__('If enabled then you get a message about new events on your Telegram', 'ttls_translate'); ?>
     511                                                </div>
     512                                            </div>
     513                                        </label>
     514                                           
     515                                        </div>
     516                                    </div>
     517                                </div>
     518                                <div class="col-md-6">
     519                                    <div class="form-group">
     520                                        <?php
     521                                            $input_id = 'ttls__notificationsSettings-telegram-token';
     522                                            $input_name = 'ttls_notifications_telegram_token';
     523                                        ?>
     524                                        <label for="<?php echo esc_attr( $input_id ); ?>">
     525                                            <?php echo esc_html__('Telegram token', 'ttls_translate'); ?>
     526                                            <div class="ttls__label-info">
     527                                                <i class="fa fa-question-circle-o" aria-hidden="true"></i>
     528                                                <div class="ttls__label-info-hidden">
     529                                                <?php echo esc_html__('For getting a token you must send for @BotFather next commands:', 'ttls_translate'); ?>
     530                                                    <ol>
     531                                                        <li>/newbot</li>
     532                                                        <li><?php echo esc_html__( 'name for your bot', 'ttls_translate' ); ?></li>
     533                                                        <li><?php echo esc_html__( "username for your bot with end in 'bot'", 'ttls_translate' ); ?></li>
     534                                                    </ol>
     535                                                <?php echo esc_html__('You get a token.', 'ttls_translate'); ?>
     536                                                </div>
     537                                            </div>
     538                                        </label>
     539                                        <div class="input-group">
     540                                            <span class="input-group-addon"><i class="fa fa-key"></i></span>
     541                                            <input
     542                                                id="<?php echo esc_attr( $input_id ); ?>"
     543                                                data-name="<?php echo esc_attr( $input_id ); ?>"
     544                                                name="<?php echo esc_attr( $input_name ); ?>"
     545                                                type="text"
     546                                                value="<?php echo esc_attr( get_option( $input_name, '' ) ); ?>"
     547                                                class="form-control"
     548                                                >
     549                                        </div>
     550                                    </div>
     551                                </div>
     552                                <div class="col-md-6">
     553                                    <div class="form-group">
     554                                        <?php
     555                                            $input_id = 'ttls__notificationsSettings-telegram-chatid';
     556                                            $input_name = 'ttls_notifications_telegram_chat_id';
     557                                        ?>
     558                                        <label for="<?php echo esc_attr( $input_id ); ?>">
     559                                            <?php echo esc_html__('Chat ID', 'ttls_translate'); ?>
     560                                            <div class="ttls__label-info">
     561                                                <i class="fa fa-question-circle-o" aria-hidden="true"></i>
     562                                                <div class="ttls__label-info-hidden">
     563                                                <?php echo esc_html__('For getting a Chat ID you have to:', 'ttls_translate'); ?>
     564                                                    <ol>
     565                                                        <li><?php echo esc_html__( 'create bot and to get a token', 'ttls_translate' ); ?></li>
     566                                                        <li><?php echo esc_html__( 'create new group and to add your bot in it', 'ttls_translate' ); ?></li>
     567                                                        <li><?php echo esc_html__( 'add bot @MyChatInfoBot on this group', 'ttls_translate' ) ?></li>
     568                                                        <li><?php echo esc_html__( '@MyChatInfoBot will give Chat ID and will leave the group', 'ttls_translate' ) ?></li>
     569                                                        <li><?php echo esc_html__( 'Chat ID may be with minus ("-"). You sholud copy Chat ID with it', 'ttls_translate' ) ?></li>
     570                                                    </ol>
     571                                                <?php echo esc_html__('You get a Chat ID.', 'ttls_translate'); ?>
     572                                                </div>
     573                                            </div>
     574                                        </label>
     575                                        <div class="input-group">
     576                                            <span class="input-group-addon"><i class="fa fa-key"></i></span>
     577                                            <input
     578                                                id="<?php echo esc_attr( $input_id ); ?>"
     579                                                data-name="<?php echo esc_attr( $input_id ); ?>"
     580                                                name="<?php echo esc_attr( $input_name ); ?>"
     581                                                type="text"
     582                                                value="<?php echo esc_attr( get_option( $input_name, '' ) ); ?>"
     583                                                class="form-control"
     584                                                >
     585                                        </div>
     586                                    </div>
     587                                </div>
     588                            </div>
     589                        </div>
     590                        <div class="ttls__settings-inner-footer">
     591                            <span class="text-muted"><?php echo esc_html__('There were no changes', 'ttls_translate'); ?></span>
     592                            <button class="btn btn-dark"><?php echo esc_html__('Save', 'ttls_translate'); ?></button>
     593                        </div>
     594                    </form>
     595
    480596                    <form action="#" id="ttls__attachment" class="ttls__settings-inner ttls-setting-form">
    481597                        <div class="ttls__settings-inner-header">
     
    687803                            <button class="btn btn-dark"><?php echo esc_html__('Save', 'ttls_translate'); ?></button>
    688804                        </div>
    689                     </form>
     805                    </form>                 
    690806                    <form action="#" id="ttls__license_standard" class="ttls__settings-inner ttls-setting-form">
    691807                        <div class="ttls__settings-inner-header">
  • ticketrilla-server/trunk/includes/core/class-attachments.php

    r2172146 r2387080  
    309309                            ) );
    310310                        }
    311                         include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
    312                         include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
    313                         $wp_my_filesystem = new WP_Filesystem_Direct(null);
    314                         if ( !$wp_my_filesystem->is_writable( $uploads_dir['path'] )  ) { // check for write permissions in folder
     311                        global $wp_filesystem;
     312                        require_once ( ABSPATH . '/wp-admin/includes/file.php' );
     313                        WP_Filesystem();
     314                        if ( !$wp_filesystem->is_writable( $uploads_dir['path'] )  ) { // check for write permissions in folder
    315315                            $error_message = esc_html__('You do not have sufficient permissions to write to folder: ', 'ttls_translate').$uploads_dir['path'];
    316316                            wp_send_json_error( array(
     
    336336                                array(
    337337                                    PCLZIP_ATT_FILE_NAME => $_FILES['file']['name'],
    338                                     PCLZIP_ATT_FILE_CONTENT => $wp_my_filesystem->get_contents( $_FILES['file']['tmp_name'] ),
     338                                    PCLZIP_ATT_FILE_CONTENT => $wp_filesystem->get_contents( $_FILES['file']['tmp_name'] ),
    339339                                )
    340340                            ) );
     
    380380
    381381                        // Defining permissions to files
    382                         $wp_my_filesystem->chmod( $new_file_name, 0000666 );
     382                        $wp_filesystem->chmod( $new_file_name, 0000666 );
    383383
    384384                        // Generate an array for including files in database
     
    616616                }
    617617
    618                 include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
    619                 include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
    620                 $wp_my_filesystem = new WP_Filesystem_Direct(null);
    621                 if ( !$wp_my_filesystem->is_writable( $uploads_dir['path'] )  ) {
     618                global $wp_filesystem;
     619                require_once ( ABSPATH . '/wp-admin/includes/file.php' );
     620                WP_Filesystem();
     621                if ( !$wp_filesystem->is_writable( $uploads_dir['path'] )  ) {
    622622                    $error->add( 'ttls_attachment_save', 'You do not have sufficient permissions to write to the attachments folder' , array( 'status' => 500 ) );
    623623                    return $error;
     
    636636                        array(
    637637                            PCLZIP_ATT_FILE_NAME => $new_zip_name,
    638                             PCLZIP_ATT_FILE_CONTENT => $wp_my_filesystem->get_contents( $tmpfname ),
     638                            PCLZIP_ATT_FILE_CONTENT => $wp_filesystem->get_contents( $tmpfname ),
    639639                        )
    640640                    ) );
     
    653653
    654654                // Set correct file permissions.
    655                 $wp_my_filesystem->chmod( $new_file_name, 0000666 );
     655                $wp_filesystem->chmod( $new_file_name, 0000666 );
    656656
    657657
  • ticketrilla-server/trunk/includes/core/class-licenses.php

    r2172146 r2387080  
    447447                        $custom_editor_of_license = apply_filters( 'ttls_license_edit_'.$license->ttls_license_type, $custom_editor_of_license );
    448448                        if ( $custom_editor_of_license['status'] ) {
    449                             echo wp_kses_post( $custom_editor_of_license['box'] );
     449                            echo $custom_editor_of_license['box'];
    450450                        } else {
    451451                            echo '<div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
     
    11551155                $old_license = $this->get( $good_license['license_type'], $good_license['license_token'] );
    11561156                if( !is_wp_error( $old_license ) ) {
    1157                     if ( get_option( 'ttls_license_multiple_users_'.$good_license['license_type'], false ) ) {
     1157                    if ( empty( $old_license['owners'] ) || get_option( 'ttls_license_multiple_users_'.$good_license['license_type'], false ) ) {
    11581158                        return $this->add_user( $old_license['id'], $good_license['user'] );
    11591159                    } else {
    1160                         $error->add( 'ttls_license_used', 'This URL is already been used', array( 'status' => 400 ) );
     1160                        $error->add( 'ttls_license_used', 'This license is already been used', array( 'status' => 400 ) );
    11611161                        return $error;
    11621162                    }
  • ticketrilla-server/trunk/includes/core/class-link.php

    r2172146 r2387080  
    4646                $all_routes = array_merge( $all_routes, apply_filters( 'ttls_add_custom_routes', $new_routes ) );
    4747
    48 
    4948                foreach ( $all_routes as $r_key => $r_route ) {
    5049
     
    147146                                        return array( 'message' => 'This token could be used' );
    148147                                    } else {
    149                                         if ( get_option( 'ttls_license_multiple_users_'.$user_info['license_type'], false ) ) {
     148                                        if ( empty( $old_license['owners'] ) || get_option( 'ttls_license_multiple_users_'.$user_info['license_type'], false ) ) {
    150149                                            return array( 'message' => 'This token could be used' );
    151150                                        } else {
     
    284283                        case 'add':
    285284                            $ticket_data = filter_input_array( INPUT_POST, FILTER_SANITIZE_STRING );
     285                            $ticket_data['content'] = empty( $_POST['content'] ) ? '' : wp_kses_post( $_POST['content'] );
    286286                            $ticket_data['parent_status'] = 'pending';
    287287                            $ticket_data['ttls_servers'] = $can_do['ttls_servers'];
     
    625625                        } else {
    626626                            $login_token = 'required'; // possible/required/false
    627                             $register_token = false; // possible/required/false
     627                            $register_token = 'possible'; // possible/required/false
    628628                        }
    629629
  • ticketrilla-server/trunk/includes/core/class-ticket.php

    r2172146 r2387080  
    514514                        'post_type'      => 'ttls_ticket',
    515515                        'meta_input'     => array(
    516                             'ttls_status' => 'free',
    517516                            'ttls_response_status' => apply_filters( 'ttls_add_ticket_response_status', $good_ticket['response_status'], $ticket ),
    518517                        ),
     
    523522                    }
    524523
    525                     if ( ! empty( $good_ticket['parent'] ) ) { // when a response
     524                    if ( empty( $good_ticket['parent'] ) ) {
     525                        $new_ticket['meta_input']['ttls_status'] = 'free';
     526                    } else {  // when a response
    526527                        $new_ticket['post_parent'] = $good_ticket['parent'];
    527528                        $new_ticket['meta_input']['ttls_response_reason'] = $good_ticket['response_reason'];
  • ticketrilla-server/trunk/includes/core/ttls-actions.php

    r2172146 r2387080  
    3939    add_action( 'init', 'ttls_check_plugin_settings' );
    4040    add_action( 'init', 'ttls_check_standard_license_type' );
     41    add_action( 'init', 'ttls_upgrade_plugin_version' );
    4142   
    4243    add_action( 'wp_ajax_ttls_generate_htaccess', 'ttls_generate_htaccess' );
     
    4849    // hook for automatic ticket closure
    4950    add_action('ttls_autoclose_ticket', array( 'TTLS_Ticket', 'autoclose' ));
     51   
     52    add_action( 'ttls_after_add_ticket', 'ttls_update_pending_tickets_count' );
     53    add_action( 'ttls_after_add_ticket', 'ttls_telegram_notify' );
    5054
    5155    /**
  • ticketrilla-server/trunk/includes/core/ttls-filters.php

    r2172146 r2387080  
    8585   
    8686    add_filter( 'ttls_link_server_firstproduct', 'ttls_link_response_data_add_plugin_ver' );
    87    
     87
     88    add_filter( 'heartbeat_send', 'ttls_heartbeat_send', 10, 2 );
     89     
     90    function ttls_heartbeat_send( $response, $data ) {
     91        $pending_tickets_count = get_option( 'ttls_pending_tickets_count' );
     92        if ( (int) $pending_tickets_count ) {
     93            $response['ttls_pending_tickets_count'] = $pending_tickets_count;
     94        }
     95        return $response;
     96    }
     97
  • ticketrilla-server/trunk/includes/short-functions.php

    r2172146 r2387080  
    9292
    9393function ttls_create_test( $upload_dir ){
    94     include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
    95     include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
    96     $wp_my_filesystem = new WP_Filesystem_Direct(null);
     94    global $wp_filesystem;
     95    require_once ( ABSPATH . '/wp-admin/includes/file.php' );
     96    WP_Filesystem();
    9797    $test_php_path = trailingslashit( $upload_dir['path'] ) . 'test.php';
    98     if ( $wp_my_filesystem->exists( $test_php_path ) ) {
     98    if ( $wp_filesystem->exists( $test_php_path ) ) {
    9999        return true;
    100100    } else {
    101         if ( $wp_my_filesystem->is_writable( $upload_dir['path'] ) ) {
    102             $wp_my_filesystem->put_contents( $test_php_path, '<?php echo "PHP"; ?>' );
     101        if ( $wp_filesystem->is_writable( $upload_dir['path'] ) ) {
     102            $wp_filesystem->put_contents( $test_php_path, '<?php echo "PHP"; ?>' );
    103103        }
    104104    }
     
    117117    if ( current_user_can( 'ttls_plugin_admin' ) ) {
    118118        $response = array( 'status' => false, 'message' => '' );
    119         include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
    120         include_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
    121         $wp_my_filesystem = new WP_Filesystem_Direct(null);
     119        global $wp_filesystem;
     120        require_once ( ABSPATH . '/wp-admin/includes/file.php' );
     121        WP_Filesystem();
    122122        $uploads_dir = wp_upload_dir('ttls');
    123123        $htaccess = $uploads_dir['path'].'.htaccess';
    124124
    125         if ( $wp_my_filesystem->exists( $htaccess ) ) {
     125        if ( $wp_filesystem->exists( $htaccess ) ) {
    126126            $response['message'] = esc_html__('.htaccess file is present.', 'ttls_translate');
    127127        } else {
     
    129129        }
    130130
    131         if ( $wp_my_filesystem->put_contents( $htaccess, "\n php_flag engine 0" ) ) {
     131        if ( $wp_filesystem->put_contents( $htaccess, "\n php_flag engine 0" ) ) {
    132132            $response['status'] = true;
    133133            $response['message'] .= '<br>'.esc_html__('.htaccess has been updated.', 'ttls_translate');
     
    213213    }
    214214}
     215
     216function ttls_upgrade_plugin_version() {
     217    if ( is_admin() ) {
     218        $upgraded_ver = get_option( 'ttls_upgraded_version' );
     219        if ( ! $upgraded_ver || version_compare( $upgraded_ver, TTLS_PLUGIN_VERSION, '<' ) ) {
     220            ttls_upgrade_tickets();
     221           
     222            update_option( 'ttls_upgraded_version', TTLS_PLUGIN_VERSION );
     223           
     224        }
     225    }
     226}
     227
     228function ttls_upgrade_tickets() {
     229   
     230    // Delete ttls_status meta = free of ticket responses
     231   
     232    $args = array(
     233        'post_type'  => 'ttls_ticket',
     234        'nopaging'   => true,
     235        'meta_query' => array(
     236            array(
     237                'key'     => 'ttls_status',
     238                'value'   => 'free',
     239                'compare' => '=',
     240            ),
     241        ),
     242    );
     243    foreach ( get_posts( $args ) as $ticket ) {
     244        if( $ticket->post_parent ) {
     245            delete_post_meta( $ticket->ID, 'ttls_status' );
     246        }
     247    }
     248}
     249
     250function ttls_calculate_pending_tickets() {
     251    $args = array(
     252        'post_type'  => 'ttls_ticket',
     253        'nopaging'   => true,
     254        'meta_query' => array(
     255            array(
     256                'key'     => 'ttls_status',
     257                'value'   => array('free', 'pending'),
     258                'compare' => 'IN',
     259            ),
     260        ),
     261    );
     262    $query = new WP_Query( $args );
     263    return $query->found_posts;
     264}
     265
     266function ttls_update_pending_tickets_count() {
     267    update_option( 'ttls_pending_tickets_count', ttls_calculate_pending_tickets() );
     268}
     269
     270function ttls_telegram_get_me( $token ) {
     271    return ttls_telegram_api_request( $token, 'getMe' );
     272}
     273
     274function ttls_telegram_get_chat( $token, $chat_id ) {
     275    return ttls_telegram_api_request( $token, 'getChat', array('chat_id' => $chat_id) );
     276}
     277
     278function ttls_telegram_send_message( $text ) {
     279    $token = get_option( 'ttls_notifications_telegram_token', '' );
     280    $chat_id = get_option( 'ttls_notifications_telegram_chat_id', '' );
     281    if ( $token && $chat_id ) {
     282        return ttls_telegram_api_request( $token, 'sendMessage', array('chat_id' => $chat_id, 'text' => $text) );
     283    }
     284    return false;
     285}
     286
     287function ttls_telegram_api_request( $token, $method, $params = array() ) {
     288    $url = 'https://api.telegram.org/bot' . $token .'/' . $method;
     289    $options = array(
     290        'http' => array(
     291            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
     292            'method'  => 'POST',
     293            'content' => http_build_query( $params ),
     294        )
     295    );
     296    $context = stream_context_create( $options );
     297    $result = file_get_contents( $url, false, $context );
     298    return $result;
     299}
     300
     301function ttls_format_telegram_notification( $ticket ) {
     302    $ticket_obj = new TTLS_Ticket;
     303    $response = $ticket_obj->get_response( $ticket->ID );
     304   
     305    if ( $response['author_pos'] == 'Client' ) {
     306
     307        $date = (new \DateTime($response['time']))->format('d-m-Y H:i');
     308
     309        if ( empty( $response['parent_id'] ) ) {
     310            $ticket_id = $response['id'];
     311        } else {
     312            $ticket_id = $response['parent_id'];
     313        }
     314       
     315        $title = '#'.esc_html( $ticket_id . ': '.stripcslashes( get_post($ticket_id)->post_title ) );
     316   
     317        $action = $ticket_obj->get_localized_response_title( array(
     318            'type' => $response['type'],
     319            'prepend' => esc_html( $response['author'] ),
     320            'append' => empty( $response['person'] ) ? '' : ' ' . esc_html( $response['person'] ),
     321        ) );
     322       
     323        $text = $action . ': ' . $title . ' [' . $date . ']';
     324        return $text;
     325    }
     326   
     327    return false;
     328}
     329
     330function ttls_telegram_notify( $ticket ) {
     331    $text = ttls_format_telegram_notification( $ticket );
     332    if ( $text ) {
     333        ttls_telegram_send_message( $text );
     334    }
     335}
  • ticketrilla-server/trunk/languages/ttls_translate.pot

    r2172146 r2387080  
    1 # Copyright (C) 2019 Ticketrilla: Server Plugin
     1# Copyright (C) 2020 Ticketrilla: Server Plugin
    22# This file is distributed under the same license as the Ticketrilla: Server Plugin package.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Ticketrilla: Server Plugin 1.0.3\n"
     5"Project-Id-Version: Ticketrilla: Server Plugin 1.0.4\n"
    66"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/ticketrilla-server\n"
    7 "POT-Creation-Date: 2019-09-02 11:03:24+00:00\n"
     7"POT-Creation-Date: 2020-09-22 13:06:27+00:00\n"
    88"MIME-Version: 1.0\n"
    99"Content-Type: text/plain; charset=UTF-8\n"
    1010"Content-Transfer-Encoding: 8bit\n"
    11 "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
     11"PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
    1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    1313"Language-Team: LANGUAGE <LL@li.org>\n"
    1414
    15 #: includes/admin/core/class-page.php:107
     15#: includes/admin/core/class-page.php:110
    1616msgid "The password variable is not specified in the body text"
    1717msgstr ""
    1818
    19 #: includes/admin/core/class-page.php:114
     19#: includes/admin/core/class-page.php:117
    2020msgid "The reset-key variable is not specified in the body text"
    2121msgstr ""
    2222
    23 #: includes/admin/core/class-page.php:129
    24 #: includes/admin/core/class-page.php:137
     23#: includes/admin/core/class-page.php:133
     24msgid "Token is invalid"
     25msgstr ""
     26
     27#: includes/admin/core/class-page.php:142
     28msgid "First enter valid token"
     29msgstr ""
     30
     31#: includes/admin/core/class-page.php:150
     32msgid "Chat ID is invalid"
     33msgstr ""
     34
     35#: includes/admin/core/class-page.php:165
     36#: includes/admin/core/class-page.php:173
    2537msgid "Errors with updating"
    2638msgstr ""
    2739
    28 #: includes/admin/core/class-page.php:143
     40#: includes/admin/core/class-page.php:179
    2941msgid "It is not e-mail"
    3042msgstr ""
    3143
    32 #: includes/admin/core/class-page.php:159
     44#: includes/admin/core/class-page.php:195
    3345msgid "New password is empty"
    3446msgstr ""
    3547
    36 #: includes/admin/core/class-page.php:166 includes/core/class-users.php:229
     48#: includes/admin/core/class-page.php:202 includes/core/class-users.php:229
    3749msgid "New password"
    3850msgstr ""
    3951
    40 #: includes/admin/core/class-page.php:174 includes/core/class-users.php:252
     52#: includes/admin/core/class-page.php:210 includes/core/class-users.php:252
    4153msgid "Updated! "
    4254msgstr ""
    4355
    44 #: includes/admin/core/class-page.php:176
     56#: includes/admin/core/class-page.php:212
    4557msgid "Some problems with updating"
    4658msgstr ""
    4759
    48 #: includes/admin/core/class-page.php:198
    49 #: includes/admin/core/class-page.php:205
    50 #: includes/admin/core/class-page.php:214 includes/core/class-users.php:191
     60#: includes/admin/core/class-page.php:234
     61#: includes/admin/core/class-page.php:241
     62#: includes/admin/core/class-page.php:250 includes/core/class-users.php:191
    5163#: includes/core/class-users.php:199
    5264msgid "Encountered an error while updating"
    5365msgstr ""
    5466
    55 #: includes/admin/core/class-page.php:219
     67#: includes/admin/core/class-page.php:255
    5668msgid "Settings updated"
    5769msgstr ""
    5870
    59 #: includes/admin/core/class-page.php:224
     71#: includes/admin/core/class-page.php:260
    6072msgid "You do not have sufficient rights for these changes"
    6173msgstr ""
    6274
    63 #: includes/admin/core/class-page.php:245
    64 #: includes/admin/core/class-page.php:246
     75#: includes/admin/core/class-page.php:284
     76#: includes/admin/core/class-page.php:285
    6577#: includes/admin/templates/page/ticketrilla-server.php:10
    6678msgid "Dashboard"
    6779msgstr ""
    6880
    69 #: includes/admin/core/class-page.php:253
    70 #: includes/admin/core/class-page.php:254
     81#: includes/admin/core/class-page.php:292
     82#: includes/admin/core/class-page.php:293
    7183#: includes/admin/templates/page/ticketrilla-server-settings.php:28
    7284#: includes/admin/templates/page/ticketrilla-server-tickets.php:21
     
    7688msgstr ""
    7789
    78 #: includes/admin/core/class-page.php:261
    79 #: includes/admin/core/class-page.php:262
     90#: includes/admin/core/class-page.php:300
     91#: includes/admin/core/class-page.php:301
    8092#: includes/admin/templates/page/ticketrilla-server-users.php:23
    8193msgid "Users"
    8294msgstr ""
    8395
    84 #: includes/admin/core/class-page.php:269
    85 #: includes/admin/core/class-page.php:270
     96#: includes/admin/core/class-page.php:308
     97#: includes/admin/core/class-page.php:309
    8698#: includes/admin/templates/page/ticketrilla-server-licences.php:14
    8799#: includes/core/class-common.php:54 includes/core/class-common.php:55
     
    90102msgstr ""
    91103
    92 #: includes/admin/core/class-page.php:277
    93 #: includes/admin/core/class-page.php:278
     104#: includes/admin/core/class-page.php:316
     105#: includes/admin/core/class-page.php:317
    94106#: includes/admin/templates/page/ticketrilla-server-addons.php:6
    95107#: includes/admin/templates/page/ticketrilla-server-licences.php:9
     
    102114msgstr ""
    103115
    104 #: includes/admin/core/class-page.php:285
    105 #: includes/admin/core/class-page.php:286
     116#: includes/admin/core/class-page.php:324
     117#: includes/admin/core/class-page.php:325
    106118#: includes/admin/templates/page/ticketrilla-server-addons.php:11
    107119msgid "Addons"
    108120msgstr ""
    109121
    110 #: includes/admin/core/class-page.php:292
     122#: includes/admin/core/class-page.php:331
    111123msgid "Ticketrilla Server"
    112124msgstr ""
     
    185197
    186198#: includes/admin/templates/page/ticketrilla-server-licences.php:24
    187 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:5
     199#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:6
    188200#: includes/admin/templates/page/ticketrilla-server-tickets.php:43
    189201msgid "All"
     
    191203
    192204#: includes/admin/templates/page/ticketrilla-server-licences.php:31
    193 #: includes/admin/templates/page/ticketrilla-server-licences.php:168
    194205#: includes/admin/templates/page/ticketrilla-server-licences.php:170
     206#: includes/admin/templates/page/ticketrilla-server-licences.php:172
    195207#: includes/core/class-common.php:59
    196208msgid "New License"
     
    199211#: includes/admin/templates/page/ticketrilla-server-licences.php:42
    200212#: includes/admin/templates/page/ticketrilla-server-licences.php:53
    201 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:27
    202 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:37
     213#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:28
     214#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:38
    203215#: includes/admin/templates/page/ticketrilla-server-users-clients.php:18
    204 #: includes/core/class-ticket.php:1487
     216#: includes/core/class-ticket.php:1513
    205217msgid "Client"
    206218msgstr ""
     
    208220#: includes/admin/templates/page/ticketrilla-server-licences.php:43
    209221#: includes/admin/templates/page/ticketrilla-server-licences.php:54
    210 #: includes/admin/templates/page/ticketrilla-server-licences.php:223
     222#: includes/admin/templates/page/ticketrilla-server-licences.php:225
    211223#: includes/admin/templates/page/ticketrilla-server-users-clients.php:26
    212224#: includes/admin/templates/page/ticketrilla-server-users.php:105
     
    255267msgstr ""
    256268
    257 #: includes/admin/templates/page/ticketrilla-server-licences.php:121
    258 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:104
     269#: includes/admin/templates/page/ticketrilla-server-licences.php:123
     270#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:108
    259271#: includes/admin/templates/page/ticketrilla-server-users-clients.php:129
    260272#: includes/admin/templates/page/ticketrilla-server-users-developers.php:138
     
    262274msgstr ""
    263275
    264 #: includes/admin/templates/page/ticketrilla-server-licences.php:142
     276#: includes/admin/templates/page/ticketrilla-server-licences.php:144
    265277#: includes/admin/templates/page/ticketrilla-server-users-clients.php:150
    266278#: includes/admin/templates/page/ticketrilla-server-users-developers.php:159
     
    268280msgstr ""
    269281
    270 #: includes/admin/templates/page/ticketrilla-server-licences.php:156
     282#: includes/admin/templates/page/ticketrilla-server-licences.php:158
    271283#: includes/admin/templates/page/ticketrilla-server-users.php:357
    272284msgid "Loading data..."
    273285msgstr ""
    274286
    275 #: includes/admin/templates/page/ticketrilla-server-licences.php:169
    276 #: includes/admin/templates/page/ticketrilla-server-licences.php:178
     287#: includes/admin/templates/page/ticketrilla-server-licences.php:171
     288#: includes/admin/templates/page/ticketrilla-server-licences.php:180
    277289#: includes/admin/templates/page/ticketrilla-server-users.php:41
    278290#: includes/admin/templates/page/ticketrilla-server-users.php:71
     
    280292msgstr ""
    281293
    282 #: includes/admin/templates/page/ticketrilla-server-licences.php:177
     294#: includes/admin/templates/page/ticketrilla-server-licences.php:179
    283295msgid "Select user"
    284296msgstr ""
    285297
    286 #: includes/admin/templates/page/ticketrilla-server-licences.php:195
    287 #: includes/admin/templates/page/ticketrilla-server-settings.php:599
    288 #: includes/admin/templates/page/ticketrilla-server-settings.php:622
    289 #: includes/admin/templates/page/ticketrilla-server-settings.php:645
    290 #: includes/admin/templates/page/ticketrilla-server-settings.php:669
     298#: includes/admin/templates/page/ticketrilla-server-licences.php:197
     299#: includes/admin/templates/page/ticketrilla-server-settings.php:715
     300#: includes/admin/templates/page/ticketrilla-server-settings.php:738
     301#: includes/admin/templates/page/ticketrilla-server-settings.php:761
     302#: includes/admin/templates/page/ticketrilla-server-settings.php:785
    291303#: includes/admin/templates/page/ticketrilla-server-users.php:79
    292304#: includes/admin/templates/page/ticketrilla-server-users.php:173
     
    296308msgstr ""
    297309
    298 #: includes/admin/templates/page/ticketrilla-server-licences.php:202
    299 #: includes/admin/templates/page/ticketrilla-server-settings.php:51
     310#: includes/admin/templates/page/ticketrilla-server-licences.php:204
     311#: includes/admin/templates/page/ticketrilla-server-settings.php:52
    300312#: includes/admin/templates/page/ticketrilla-server-users.php:85
    301313#: includes/admin/templates/page/ticketrilla-server-users.php:179
     
    304316msgstr ""
    305317
    306 #: includes/admin/templates/page/ticketrilla-server-licences.php:208
    307 #: includes/admin/templates/page/ticketrilla-server-settings.php:98
     318#: includes/admin/templates/page/ticketrilla-server-licences.php:210
     319#: includes/admin/templates/page/ticketrilla-server-settings.php:99
    308320#: includes/admin/templates/page/ticketrilla-server-users.php:91
    309321#: includes/admin/templates/page/ticketrilla-server-users.php:185
     
    312324msgstr ""
    313325
    314 #: includes/admin/templates/page/ticketrilla-server-licences.php:214
     326#: includes/admin/templates/page/ticketrilla-server-licences.php:216
    315327#: includes/admin/templates/page/ticketrilla-server-users.php:96
    316328#: includes/admin/templates/page/ticketrilla-server-users.php:290
     
    319331msgstr ""
    320332
    321 #: includes/admin/templates/page/ticketrilla-server-licences.php:229
     333#: includes/admin/templates/page/ticketrilla-server-licences.php:231
    322334msgid "Add license"
    323335msgstr ""
    324336
    325 #: includes/admin/templates/page/ticketrilla-server-licences.php:237
     337#: includes/admin/templates/page/ticketrilla-server-licences.php:239
    326338#: includes/admin/templates/page/ticketrilla-server-users.php:119
    327339#: includes/admin/templates/page/ticketrilla-server-users.php:313
     
    329341msgstr ""
    330342
    331 #: includes/admin/templates/page/ticketrilla-server-licences.php:238
    332 #: includes/admin/templates/page/ticketrilla-server-licences.php:239
     343#: includes/admin/templates/page/ticketrilla-server-licences.php:240
     344#: includes/admin/templates/page/ticketrilla-server-licences.php:241
    333345#: includes/admin/templates/page/ticketrilla-server-users.php:120
    334346#: includes/admin/templates/page/ticketrilla-server-users.php:121
     
    338350msgstr ""
    339351
    340 #: includes/admin/templates/page/ticketrilla-server-licences.php:249
     352#: includes/admin/templates/page/ticketrilla-server-licences.php:251
    341353#: includes/admin/templates/page/ticketrilla-server-users.php:132
    342354#: includes/admin/templates/page/ticketrilla-server-users.php:325
     
    345357msgstr ""
    346358
    347 #: includes/admin/templates/page/ticketrilla-server-licences.php:253
     359#: includes/admin/templates/page/ticketrilla-server-licences.php:255
    348360#: includes/admin/templates/page/ticketrilla-server-users.php:136
    349361#: includes/admin/templates/page/ticketrilla-server-users.php:329
     
    352364msgstr ""
    353365
    354 #: includes/admin/templates/page/ticketrilla-server-licences.php:257
     366#: includes/admin/templates/page/ticketrilla-server-licences.php:259
    355367#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:85
    356368#: includes/admin/templates/page/ticketrilla-server-users.php:140
     
    359371msgstr ""
    360372
    361 #: includes/admin/templates/page/ticketrilla-server-licences.php:271
    362 #: includes/admin/templates/page/ticketrilla-server-settings.php:856
     373#: includes/admin/templates/page/ticketrilla-server-licences.php:273
     374#: includes/admin/templates/page/ticketrilla-server-settings.php:972
    363375#: includes/admin/templates/page/ticketrilla-server-users.php:153
    364376#: includes/admin/templates/page/ticketrilla-server-users.php:222
     
    367379msgstr ""
    368380
    369 #: includes/admin/templates/page/ticketrilla-server-licences.php:272
    370 #: includes/admin/templates/page/ticketrilla-server-licences.php:275
     381#: includes/admin/templates/page/ticketrilla-server-licences.php:274
     382#: includes/admin/templates/page/ticketrilla-server-licences.php:277
    371383#: includes/admin/templates/page/ticketrilla-server-users-clients.php:95
    372384#: includes/admin/templates/page/ticketrilla-server-users.php:111
     
    377389msgstr ""
    378390
    379 #: includes/admin/templates/page/ticketrilla-server-licences.php:273
     391#: includes/admin/templates/page/ticketrilla-server-licences.php:275
    380392msgid "Create Client"
    381393msgstr ""
     
    394406
    395407#: includes/admin/templates/page/ticketrilla-server-settings.php:29
     408msgid "Notifications"
     409msgstr ""
     410
     411#: includes/admin/templates/page/ticketrilla-server-settings.php:30
    396412#: includes/core/class-common.php:79 includes/core/class-common.php:90
    397413msgid "Attachments"
    398414msgstr ""
    399415
    400 #: includes/admin/templates/page/ticketrilla-server-settings.php:30
     416#: includes/admin/templates/page/ticketrilla-server-settings.php:31
    401417msgid "Reset password"
    402418msgstr ""
    403419
    404 #: includes/admin/templates/page/ticketrilla-server-settings.php:31
     420#: includes/admin/templates/page/ticketrilla-server-settings.php:32
    405421msgid "Standard license"
    406422msgstr ""
    407423
    408 #: includes/admin/templates/page/ticketrilla-server-settings.php:44
     424#: includes/admin/templates/page/ticketrilla-server-settings.php:45
    409425msgid "Your profile"
    410426msgstr ""
    411427
    412 #: includes/admin/templates/page/ticketrilla-server-settings.php:55
     428#: includes/admin/templates/page/ticketrilla-server-settings.php:56
    413429msgid "Displayed name"
    414430msgstr ""
    415431
    416 #: includes/admin/templates/page/ticketrilla-server-settings.php:66
    417 #: includes/admin/templates/page/ticketrilla-server-settings.php:80
     432#: includes/admin/templates/page/ticketrilla-server-settings.php:67
    418433#: includes/admin/templates/page/ticketrilla-server-settings.php:81
     434#: includes/admin/templates/page/ticketrilla-server-settings.php:82
    419435#: includes/admin/templates/page/ticketrilla-server-users.php:201
    420436#: includes/admin/templates/page/ticketrilla-server-users.php:202
     
    424440msgstr ""
    425441
    426 #: includes/admin/templates/page/ticketrilla-server-settings.php:70
     442#: includes/admin/templates/page/ticketrilla-server-settings.php:71
    427443msgid "You can change your password"
    428444msgstr ""
    429445
    430 #: includes/admin/templates/page/ticketrilla-server-settings.php:88
    431 #: includes/admin/templates/page/ticketrilla-server-settings.php:90
     446#: includes/admin/templates/page/ticketrilla-server-settings.php:89
     447#: includes/admin/templates/page/ticketrilla-server-settings.php:91
    432448#: includes/core/class-users.php:331 includes/core/class-users.php:333
    433449msgid "Change password"
    434450msgstr ""
    435451
    436 #: includes/admin/templates/page/ticketrilla-server-settings.php:89
     452#: includes/admin/templates/page/ticketrilla-server-settings.php:90
    437453msgid "Don't change"
    438454msgstr ""
    439455
    440 #: includes/admin/templates/page/ticketrilla-server-settings.php:102
     456#: includes/admin/templates/page/ticketrilla-server-settings.php:103
    441457msgid "You can change your email"
    442458msgstr ""
    443459
    444 #: includes/admin/templates/page/ticketrilla-server-settings.php:113
     460#: includes/admin/templates/page/ticketrilla-server-settings.php:114
    445461#: includes/admin/templates/page/ticketrilla-server-users.php:191
    446462#: includes/core/class-users.php:308
     
    448464msgstr ""
    449465
    450 #: includes/admin/templates/page/ticketrilla-server-settings.php:117
     466#: includes/admin/templates/page/ticketrilla-server-settings.php:118
    451467msgid "You can change your position"
    452 msgstr ""
    453 
    454 #: includes/admin/templates/page/ticketrilla-server-settings.php:130
    455 #: includes/admin/templates/page/ticketrilla-server-settings.php:340
    456 #: includes/admin/templates/page/ticketrilla-server-settings.php:476
    457 #: includes/admin/templates/page/ticketrilla-server-settings.php:578
    458 #: includes/admin/templates/page/ticketrilla-server-settings.php:686
    459 #: includes/admin/templates/page/ticketrilla-server-settings.php:821
    460 msgid "There were no changes"
    461468msgstr ""
    462469
     
    464471#: includes/admin/templates/page/ticketrilla-server-settings.php:341
    465472#: includes/admin/templates/page/ticketrilla-server-settings.php:477
    466 #: includes/admin/templates/page/ticketrilla-server-settings.php:579
    467 #: includes/admin/templates/page/ticketrilla-server-settings.php:687
    468 #: includes/admin/templates/page/ticketrilla-server-settings.php:822
     473#: includes/admin/templates/page/ticketrilla-server-settings.php:591
     474#: includes/admin/templates/page/ticketrilla-server-settings.php:694
     475#: includes/admin/templates/page/ticketrilla-server-settings.php:802
     476#: includes/admin/templates/page/ticketrilla-server-settings.php:937
     477msgid "There were no changes"
     478msgstr ""
     479
     480#: includes/admin/templates/page/ticketrilla-server-settings.php:132
     481#: includes/admin/templates/page/ticketrilla-server-settings.php:342
     482#: includes/admin/templates/page/ticketrilla-server-settings.php:478
     483#: includes/admin/templates/page/ticketrilla-server-settings.php:592
     484#: includes/admin/templates/page/ticketrilla-server-settings.php:695
     485#: includes/admin/templates/page/ticketrilla-server-settings.php:803
     486#: includes/admin/templates/page/ticketrilla-server-settings.php:938
    469487#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:215
    470488#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:333
     
    473491msgstr ""
    474492
    475 #: includes/admin/templates/page/ticketrilla-server-settings.php:138
     493#: includes/admin/templates/page/ticketrilla-server-settings.php:139
    476494msgid "Support product settings"
    477495msgstr ""
    478496
    479 #: includes/admin/templates/page/ticketrilla-server-settings.php:142
     497#: includes/admin/templates/page/ticketrilla-server-settings.php:143
    480498msgid "Client-side information"
    481499msgstr ""
    482500
    483 #: includes/admin/templates/page/ticketrilla-server-settings.php:152
     501#: includes/admin/templates/page/ticketrilla-server-settings.php:153
    484502msgid "Product type"
    485503msgstr ""
    486504
    487 #: includes/admin/templates/page/ticketrilla-server-settings.php:157
     505#: includes/admin/templates/page/ticketrilla-server-settings.php:158
    488506msgid "Theme"
    489507msgstr ""
    490508
    491 #: includes/admin/templates/page/ticketrilla-server-settings.php:158
     509#: includes/admin/templates/page/ticketrilla-server-settings.php:159
    492510msgid "Plugin"
    493511msgstr ""
    494512
    495 #: includes/admin/templates/page/ticketrilla-server-settings.php:159
     513#: includes/admin/templates/page/ticketrilla-server-settings.php:160
    496514msgid "HTML"
    497515msgstr ""
    498516
    499 #: includes/admin/templates/page/ticketrilla-server-settings.php:160
     517#: includes/admin/templates/page/ticketrilla-server-settings.php:161
    500518msgid "Design-Mockup"
    501519msgstr ""
    502520
    503 #: includes/admin/templates/page/ticketrilla-server-settings.php:161
     521#: includes/admin/templates/page/ticketrilla-server-settings.php:162
    504522#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:205
    505523#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:323
     
    507525msgstr ""
    508526
    509 #: includes/admin/templates/page/ticketrilla-server-settings.php:174
    510 #: includes/admin/templates/page/ticketrilla-server-settings.php:181
     527#: includes/admin/templates/page/ticketrilla-server-settings.php:175
     528#: includes/admin/templates/page/ticketrilla-server-settings.php:182
    511529msgid "Author name"
    512530msgstr ""
    513531
    514 #: includes/admin/templates/page/ticketrilla-server-settings.php:189
    515 #: includes/admin/templates/page/ticketrilla-server-settings.php:196
     532#: includes/admin/templates/page/ticketrilla-server-settings.php:190
     533#: includes/admin/templates/page/ticketrilla-server-settings.php:197
    516534msgid "Developer URL"
    517535msgstr ""
    518536
    519 #: includes/admin/templates/page/ticketrilla-server-settings.php:204
    520 #: includes/admin/templates/page/ticketrilla-server-settings.php:211
     537#: includes/admin/templates/page/ticketrilla-server-settings.php:205
     538#: includes/admin/templates/page/ticketrilla-server-settings.php:212
    521539msgid "Manual URL"
    522540msgstr ""
    523541
    524 #: includes/admin/templates/page/ticketrilla-server-settings.php:219
    525 #: includes/admin/templates/page/ticketrilla-server-settings.php:226
     542#: includes/admin/templates/page/ticketrilla-server-settings.php:220
     543#: includes/admin/templates/page/ticketrilla-server-settings.php:227
    526544msgid "Terms of service URL"
    527545msgstr ""
    528546
    529 #: includes/admin/templates/page/ticketrilla-server-settings.php:234
    530 #: includes/admin/templates/page/ticketrilla-server-settings.php:241
     547#: includes/admin/templates/page/ticketrilla-server-settings.php:235
     548#: includes/admin/templates/page/ticketrilla-server-settings.php:242
    531549msgid "Privacy policy URL"
    532550msgstr ""
    533551
    534 #: includes/admin/templates/page/ticketrilla-server-settings.php:254
     552#: includes/admin/templates/page/ticketrilla-server-settings.php:255
    535553msgid "Product title"
    536554msgstr ""
    537555
    538 #: includes/admin/templates/page/ticketrilla-server-settings.php:263
     556#: includes/admin/templates/page/ticketrilla-server-settings.php:264
    539557msgid "Product slug"
    540558msgstr ""
    541559
    542 #: includes/admin/templates/page/ticketrilla-server-settings.php:268
     560#: includes/admin/templates/page/ticketrilla-server-settings.php:269
    543561msgid "Product description"
    544562msgstr ""
    545563
    546 #: includes/admin/templates/page/ticketrilla-server-settings.php:275
     564#: includes/admin/templates/page/ticketrilla-server-settings.php:276
    547565msgid "Product icon"
    548566msgstr ""
    549567
    550 #: includes/admin/templates/page/ticketrilla-server-settings.php:278
    551 #: includes/admin/templates/page/ticketrilla-server-settings.php:282
     568#: includes/admin/templates/page/ticketrilla-server-settings.php:279
     569#: includes/admin/templates/page/ticketrilla-server-settings.php:283
    552570msgid "Select product image"
    553571msgstr ""
    554572
    555 #: includes/admin/templates/page/ticketrilla-server-settings.php:284
     573#: includes/admin/templates/page/ticketrilla-server-settings.php:285
    556574#: includes/admin/templates/page/ticketrilla-server-users-developers.php:103
    557575msgid "Change"
    558576msgstr ""
    559577
    560 #: includes/admin/templates/page/ticketrilla-server-settings.php:289
     578#: includes/admin/templates/page/ticketrilla-server-settings.php:290
    561579msgid "Select image"
    562580msgstr ""
    563581
    564 #: includes/admin/templates/page/ticketrilla-server-settings.php:306
     582#: includes/admin/templates/page/ticketrilla-server-settings.php:307
    565583msgid "Open registration"
    566584msgstr ""
    567585
    568 #: includes/admin/templates/page/ticketrilla-server-settings.php:310
     586#: includes/admin/templates/page/ticketrilla-server-settings.php:311
    569587msgid "Any user can register"
    570588msgstr ""
    571589
    572 #: includes/admin/templates/page/ticketrilla-server-settings.php:322
     590#: includes/admin/templates/page/ticketrilla-server-settings.php:323
    573591msgid "Product presets"
    574592msgstr ""
    575593
    576 #: includes/admin/templates/page/ticketrilla-server-settings.php:327
     594#: includes/admin/templates/page/ticketrilla-server-settings.php:328
    577595msgid "Please input the preset settings to your product. The copied text should be inserted in the style.css file (for themes) or main php-file (for plugins) at the upper section of the comments."
    578596msgstr ""
    579597
    580 #: includes/admin/templates/page/ticketrilla-server-settings.php:328
     598#: includes/admin/templates/page/ticketrilla-server-settings.php:329
    581599msgid "Example"
    582600msgstr ""
    583601
    584 #: includes/admin/templates/page/ticketrilla-server-settings.php:329
     602#: includes/admin/templates/page/ticketrilla-server-settings.php:330
    585603msgid "Product title must be saved before preset settings generation."
    586604msgstr ""
    587605
    588 #: includes/admin/templates/page/ticketrilla-server-settings.php:334
     606#: includes/admin/templates/page/ticketrilla-server-settings.php:335
    589607msgid "Generate settings"
    590608msgstr ""
    591609
    592 #: includes/admin/templates/page/ticketrilla-server-settings.php:347
     610#: includes/admin/templates/page/ticketrilla-server-settings.php:348
    593611msgid "Ticket settings"
    594612msgstr ""
    595613
    596 #: includes/admin/templates/page/ticketrilla-server-settings.php:355
     614#: includes/admin/templates/page/ticketrilla-server-settings.php:356
    597615msgid "Time limit for adding new tickets"
    598616msgstr ""
    599617
    600 #: includes/admin/templates/page/ticketrilla-server-settings.php:359
     618#: includes/admin/templates/page/ticketrilla-server-settings.php:360
    601619msgid "How ofter are user's allowed to open new tickets"
    602620msgstr ""
    603621
    604 #: includes/admin/templates/page/ticketrilla-server-settings.php:360
     622#: includes/admin/templates/page/ticketrilla-server-settings.php:361
    605623msgid "0 - no limit"
    606624msgstr ""
    607625
    608 #: includes/admin/templates/page/ticketrilla-server-settings.php:373
     626#: includes/admin/templates/page/ticketrilla-server-settings.php:374
    609627msgid "min"
    610628msgstr ""
    611629
    612 #: includes/admin/templates/page/ticketrilla-server-settings.php:379
     630#: includes/admin/templates/page/ticketrilla-server-settings.php:380
    613631msgid "Default ticket status for responses"
    614632msgstr ""
    615633
    616 #: includes/admin/templates/page/ticketrilla-server-settings.php:383
     634#: includes/admin/templates/page/ticketrilla-server-settings.php:384
    617635msgid "While adding a new response, a ticket status could be set by default"
    618636msgstr ""
    619637
    620 #: includes/admin/templates/page/ticketrilla-server-settings.php:413
     638#: includes/admin/templates/page/ticketrilla-server-settings.php:414
    621639msgid "Automatic ticket closure"
    622640msgstr ""
    623641
    624 #: includes/admin/templates/page/ticketrilla-server-settings.php:417
     642#: includes/admin/templates/page/ticketrilla-server-settings.php:418
    625643msgid "If enabled - the ticket will be automatically closed, when it doesn't receives a response from client"
    626644msgstr ""
    627645
    628 #: includes/admin/templates/page/ticketrilla-server-settings.php:425
     646#: includes/admin/templates/page/ticketrilla-server-settings.php:426
    629647msgid "Automatic ticket closure - time limit"
    630648msgstr ""
    631649
    632 #: includes/admin/templates/page/ticketrilla-server-settings.php:429
     650#: includes/admin/templates/page/ticketrilla-server-settings.php:430
    633651msgid "Time period for automatically closing tickets"
    634652msgstr ""
    635653
    636 #: includes/admin/templates/page/ticketrilla-server-settings.php:436
     654#: includes/admin/templates/page/ticketrilla-server-settings.php:437
    637655msgid "Every hour"
    638656msgstr ""
    639657
    640 #: includes/admin/templates/page/ticketrilla-server-settings.php:437
     658#: includes/admin/templates/page/ticketrilla-server-settings.php:438
    641659msgid "Twice a day"
    642660msgstr ""
    643661
    644 #: includes/admin/templates/page/ticketrilla-server-settings.php:438
     662#: includes/admin/templates/page/ticketrilla-server-settings.php:439
    645663msgid "Every day"
    646664msgstr ""
    647665
    648 #: includes/admin/templates/page/ticketrilla-server-settings.php:452
     666#: includes/admin/templates/page/ticketrilla-server-settings.php:453
    649667msgid "Maximum period for closing tickets which didn't receive a response from client"
    650668msgstr ""
    651669
    652 #: includes/admin/templates/page/ticketrilla-server-settings.php:456
     670#: includes/admin/templates/page/ticketrilla-server-settings.php:457
    653671msgid "After the pre-set period of time, inactive tickets will be closed automatically"
    654672msgstr ""
    655673
    656 #: includes/admin/templates/page/ticketrilla-server-settings.php:469
    657 #: includes/admin/templates/page/ticketrilla-server-settings.php:814
     674#: includes/admin/templates/page/ticketrilla-server-settings.php:470
     675#: includes/admin/templates/page/ticketrilla-server-settings.php:930
    658676msgid "days"
    659677msgstr ""
    660678
    661 #: includes/admin/templates/page/ticketrilla-server-settings.php:482
     679#: includes/admin/templates/page/ticketrilla-server-settings.php:484
     680msgid "New events notifications"
     681msgstr ""
     682
     683#: includes/admin/templates/page/ticketrilla-server-settings.php:506
     684msgid "Enable for Telegram"
     685msgstr ""
     686
     687#: includes/admin/templates/page/ticketrilla-server-settings.php:510
     688msgid "If enabled then you get a message about new events on your Telegram"
     689msgstr ""
     690
     691#: includes/admin/templates/page/ticketrilla-server-settings.php:525
     692msgid "Telegram token"
     693msgstr ""
     694
     695#: includes/admin/templates/page/ticketrilla-server-settings.php:529
     696msgid "For getting a token you must send for @BotFather next commands:"
     697msgstr ""
     698
     699#: includes/admin/templates/page/ticketrilla-server-settings.php:532
     700msgid "name for your bot"
     701msgstr ""
     702
     703#: includes/admin/templates/page/ticketrilla-server-settings.php:533
     704msgid "username for your bot with end in 'bot'"
     705msgstr ""
     706
     707#: includes/admin/templates/page/ticketrilla-server-settings.php:535
     708msgid "You get a token."
     709msgstr ""
     710
     711#: includes/admin/templates/page/ticketrilla-server-settings.php:559
     712msgid "Chat ID"
     713msgstr ""
     714
     715#: includes/admin/templates/page/ticketrilla-server-settings.php:563
     716msgid "For getting a Chat ID you have to:"
     717msgstr ""
     718
     719#: includes/admin/templates/page/ticketrilla-server-settings.php:565
     720msgid "create bot and to get a token"
     721msgstr ""
     722
     723#: includes/admin/templates/page/ticketrilla-server-settings.php:566
     724msgid "create new group and to add your bot in it"
     725msgstr ""
     726
     727#: includes/admin/templates/page/ticketrilla-server-settings.php:567
     728msgid "add bot @MyChatInfoBot on this group"
     729msgstr ""
     730
     731#: includes/admin/templates/page/ticketrilla-server-settings.php:568
     732msgid "@MyChatInfoBot will give Chat ID and will leave the group"
     733msgstr ""
     734
     735#: includes/admin/templates/page/ticketrilla-server-settings.php:569
     736msgid "Chat ID may be with minus (\"-\"). You sholud copy Chat ID with it"
     737msgstr ""
     738
     739#: includes/admin/templates/page/ticketrilla-server-settings.php:571
     740msgid "You get a Chat ID."
     741msgstr ""
     742
     743#: includes/admin/templates/page/ticketrilla-server-settings.php:598
    662744msgid "Attachments settings"
    663745msgstr ""
    664746
    665 #: includes/admin/templates/page/ticketrilla-server-settings.php:490
     747#: includes/admin/templates/page/ticketrilla-server-settings.php:606
    666748msgid "Maximum file size"
    667749msgstr ""
    668750
    669 #: includes/admin/templates/page/ticketrilla-server-settings.php:494
     751#: includes/admin/templates/page/ticketrilla-server-settings.php:610
    670752msgid "When the maximum file size is exceeded, the files will be linked from the client's site"
    671753msgstr ""
    672754
    673 #: includes/admin/templates/page/ticketrilla-server-settings.php:506
     755#: includes/admin/templates/page/ticketrilla-server-settings.php:622
    674756#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:361
    675757msgid "MB"
    676758msgstr ""
    677759
    678 #: includes/admin/templates/page/ticketrilla-server-settings.php:520
     760#: includes/admin/templates/page/ticketrilla-server-settings.php:636
    679761msgid "Auto-load attachments"
    680762msgstr ""
    681763
    682 #: includes/admin/templates/page/ticketrilla-server-settings.php:524
     764#: includes/admin/templates/page/ticketrilla-server-settings.php:640
    683765msgid "When enabled - a copy of the attachments will be automatically loaded to the developer's server"
    684766msgstr ""
    685767
    686 #: includes/admin/templates/page/ticketrilla-server-settings.php:534
     768#: includes/admin/templates/page/ticketrilla-server-settings.php:650
    687769msgid "Maximum upload timeout"
    688770msgstr ""
    689771
    690 #: includes/admin/templates/page/ticketrilla-server-settings.php:538
     772#: includes/admin/templates/page/ticketrilla-server-settings.php:654
    691773msgid "A time limitation for loading attachments to the server"
    692774msgstr ""
    693775
    694 #: includes/admin/templates/page/ticketrilla-server-settings.php:550
     776#: includes/admin/templates/page/ticketrilla-server-settings.php:666
    695777msgid "sec."
    696778msgstr ""
    697779
    698 #: includes/admin/templates/page/ticketrilla-server-settings.php:564
     780#: includes/admin/templates/page/ticketrilla-server-settings.php:680
    699781msgid "Support subscription requirement for attachments"
    700782msgstr ""
    701783
    702 #: includes/admin/templates/page/ticketrilla-server-settings.php:568
     784#: includes/admin/templates/page/ticketrilla-server-settings.php:684
    703785msgid "When enabled - only the clients with active support subscription will be able to upload attachments"
    704786msgstr ""
    705787
    706 #: includes/admin/templates/page/ticketrilla-server-settings.php:584
    707 #: includes/admin/templates/page/ticketrilla-server-settings.php:635
     788#: includes/admin/templates/page/ticketrilla-server-settings.php:700
     789#: includes/admin/templates/page/ticketrilla-server-settings.php:751
    708790msgid "Password reset via email"
    709791msgstr ""
    710792
    711 #: includes/admin/templates/page/ticketrilla-server-settings.php:589
     793#: includes/admin/templates/page/ticketrilla-server-settings.php:705
    712794msgid "Restoring access email"
    713795msgstr ""
    714796
    715 #: includes/admin/templates/page/ticketrilla-server-settings.php:592
    716 #: includes/admin/templates/page/ticketrilla-server-settings.php:638
     797#: includes/admin/templates/page/ticketrilla-server-settings.php:708
     798#: includes/admin/templates/page/ticketrilla-server-settings.php:754
    717799msgid "Email title"
    718800msgstr ""
    719801
    720 #: includes/admin/templates/page/ticketrilla-server-settings.php:596
    721 #: includes/admin/templates/page/ticketrilla-server-settings.php:619
    722 #: includes/admin/templates/page/ticketrilla-server-settings.php:642
    723 #: includes/admin/templates/page/ticketrilla-server-settings.php:666
     802#: includes/admin/templates/page/ticketrilla-server-settings.php:712
     803#: includes/admin/templates/page/ticketrilla-server-settings.php:735
     804#: includes/admin/templates/page/ticketrilla-server-settings.php:758
     805#: includes/admin/templates/page/ticketrilla-server-settings.php:782
    724806msgid "Email variables"
    725807msgstr ""
    726808
    727 #: includes/admin/templates/page/ticketrilla-server-settings.php:598
    728 #: includes/admin/templates/page/ticketrilla-server-settings.php:621
    729 #: includes/admin/templates/page/ticketrilla-server-settings.php:644
    730 #: includes/admin/templates/page/ticketrilla-server-settings.php:668
     809#: includes/admin/templates/page/ticketrilla-server-settings.php:714
     810#: includes/admin/templates/page/ticketrilla-server-settings.php:737
     811#: includes/admin/templates/page/ticketrilla-server-settings.php:760
     812#: includes/admin/templates/page/ticketrilla-server-settings.php:784
    731813msgid "secure code"
    732814msgstr ""
    733815
    734 #: includes/admin/templates/page/ticketrilla-server-settings.php:600
    735 #: includes/admin/templates/page/ticketrilla-server-settings.php:623
    736 #: includes/admin/templates/page/ticketrilla-server-settings.php:646
    737 #: includes/admin/templates/page/ticketrilla-server-settings.php:670
     816#: includes/admin/templates/page/ticketrilla-server-settings.php:716
     817#: includes/admin/templates/page/ticketrilla-server-settings.php:739
     818#: includes/admin/templates/page/ticketrilla-server-settings.php:762
     819#: includes/admin/templates/page/ticketrilla-server-settings.php:786
    738820msgid "password"
    739821msgstr ""
    740822
    741 #: includes/admin/templates/page/ticketrilla-server-settings.php:601
    742 #: includes/admin/templates/page/ticketrilla-server-settings.php:624
    743 #: includes/admin/templates/page/ticketrilla-server-settings.php:647
    744 #: includes/admin/templates/page/ticketrilla-server-settings.php:671
     823#: includes/admin/templates/page/ticketrilla-server-settings.php:717
     824#: includes/admin/templates/page/ticketrilla-server-settings.php:740
     825#: includes/admin/templates/page/ticketrilla-server-settings.php:763
     826#: includes/admin/templates/page/ticketrilla-server-settings.php:787
    745827msgid "product name"
    746828msgstr ""
    747829
    748 #: includes/admin/templates/page/ticketrilla-server-settings.php:615
    749 #: includes/admin/templates/page/ticketrilla-server-settings.php:662
     830#: includes/admin/templates/page/ticketrilla-server-settings.php:731
     831#: includes/admin/templates/page/ticketrilla-server-settings.php:778
    750832msgid "Email text"
    751833msgstr ""
    752834
    753 #: includes/admin/templates/page/ticketrilla-server-settings.php:692
     835#: includes/admin/templates/page/ticketrilla-server-settings.php:808
    754836msgid "Standard license settings"
    755837msgstr ""
    756838
    757 #: includes/admin/templates/page/ticketrilla-server-settings.php:712
     839#: includes/admin/templates/page/ticketrilla-server-settings.php:828
    758840msgid "Enable standard licensing"
    759841msgstr ""
    760842
    761 #: includes/admin/templates/page/ticketrilla-server-settings.php:728
     843#: includes/admin/templates/page/ticketrilla-server-settings.php:844
    762844msgid "Unlimited users"
    763845msgstr ""
    764846
    765 #: includes/admin/templates/page/ticketrilla-server-settings.php:732
     847#: includes/admin/templates/page/ticketrilla-server-settings.php:848
    766848msgid "When enabled - unlimited amount of users will be allowed to use the same license"
    767849msgstr ""
    768850
    769 #: includes/admin/templates/page/ticketrilla-server-settings.php:750
     851#: includes/admin/templates/page/ticketrilla-server-settings.php:866
    770852msgid "Confirmed standard license"
    771853msgstr ""
    772854
    773 #: includes/admin/templates/page/ticketrilla-server-settings.php:754
     855#: includes/admin/templates/page/ticketrilla-server-settings.php:870
    774856msgid "Licenses linked via the client plugin will be confirmed"
    775857msgstr ""
    776858
    777 #: includes/admin/templates/page/ticketrilla-server-settings.php:771
     859#: includes/admin/templates/page/ticketrilla-server-settings.php:887
    778860msgid "Standard license support present"
    779861msgstr ""
    780862
    781 #: includes/admin/templates/page/ticketrilla-server-settings.php:775
     863#: includes/admin/templates/page/ticketrilla-server-settings.php:891
    782864msgid "Licenses linked via the client plugin will have an active subscription enabled"
    783865msgstr ""
    784866
    785 #: includes/admin/templates/page/ticketrilla-server-settings.php:784
     867#: includes/admin/templates/page/ticketrilla-server-settings.php:900
    786868msgid "Link for extending standard license support period "
    787869msgstr ""
    788870
    789 #: includes/admin/templates/page/ticketrilla-server-settings.php:798
     871#: includes/admin/templates/page/ticketrilla-server-settings.php:914
    790872msgid "License expiry date"
    791873msgstr ""
    792874
    793 #: includes/admin/templates/page/ticketrilla-server-settings.php:802
     875#: includes/admin/templates/page/ticketrilla-server-settings.php:918
    794876msgid "Amount of license days remaining - starting from the creation date"
    795877msgstr ""
    796878
    797 #: includes/admin/templates/page/ticketrilla-server-settings.php:838
     879#: includes/admin/templates/page/ticketrilla-server-settings.php:954
    798880msgid "Generate inclusion code"
    799881msgstr ""
    800882
    801 #: includes/admin/templates/page/ticketrilla-server-settings.php:845
     883#: includes/admin/templates/page/ticketrilla-server-settings.php:961
    802884msgid "Server"
    803885msgstr ""
    804886
    805 #: includes/admin/templates/page/ticketrilla-server-settings.php:851
     887#: includes/admin/templates/page/ticketrilla-server-settings.php:967
    806888msgid "Description"
    807889msgstr ""
    808890
    809 #: includes/admin/templates/page/ticketrilla-server-settings.php:856
     891#: includes/admin/templates/page/ticketrilla-server-settings.php:972
    810892msgid "Generate"
    811893msgstr ""
     
    815897msgstr ""
    816898
    817 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:6
    818 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:47
     899#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:7
     900#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:48
    819901#: includes/admin/templates/page/ticketrilla-server-tickets.php:27
    820902msgid "Unassigned"
    821903msgstr ""
    822904
    823 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:7
     905#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:8
    824906#: includes/admin/templates/page/ticketrilla-server-tickets.php:33
    825907msgid "Pending"
    826908msgstr ""
    827909
    828 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:8
     910#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:9
    829911#: includes/admin/templates/page/ticketrilla-server-tickets.php:30
    830912msgid "Replied"
    831913msgstr ""
    832914
    833 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:9
     915#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:10
    834916#: includes/admin/templates/page/ticketrilla-server-tickets.php:36
    835917msgid "Third side"
    836918msgstr ""
    837919
    838 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:10
     920#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:11
    839921#: includes/admin/templates/page/ticketrilla-server-tickets.php:39
    840922msgid "Closed"
    841923msgstr ""
    842924
    843 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:25
    844 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:35
    845 msgid "Status"
    846 msgstr ""
    847 
    848925#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:26
    849926#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:36
     927msgid "Status"
     928msgstr ""
     929
     930#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:27
     931#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:37
    850932msgid "Title"
    851 msgstr ""
    852 
    853 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:28
    854 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:38
    855 msgid "Agent"
    856933msgstr ""
    857934
    858935#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:29
    859936#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:39
    860 msgid "Latest response"
     937msgid "Agent"
    861938msgstr ""
    862939
    863940#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:30
    864941#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:40
     942msgid "Latest response"
     943msgstr ""
     944
     945#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:31
     946#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:41
    865947#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:118
    866948#: includes/core/class-common.php:80
     
    868950msgstr ""
    869951
    870 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:48
     952#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:49
    871953msgid "pending"
    872954msgstr ""
    873955
    874 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:49
     956#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:50
    875957msgid "replied"
    876958msgstr ""
    877959
    878 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:50
     960#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:51
    879961msgid "third side"
    880962msgstr ""
    881963
    882 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:51
     964#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:52
    883965msgid "closed"
    884966msgstr ""
    885967
    886 #: includes/admin/templates/page/ticketrilla-server-tickets-list.php:125
     968#: includes/admin/templates/page/ticketrilla-server-tickets-list.php:129
    887969msgid "Latest"
    888970msgstr ""
     
    9321014#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:291
    9331015#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:367
    934 #: includes/core/class-ticket.php:1410
     1016#: includes/core/class-ticket.php:1437
    9351017msgid "Available ticket"
    9361018msgstr ""
     
    9391021#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:292
    9401022#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:368
    941 #: includes/core/class-ticket.php:1413
     1023#: includes/core/class-ticket.php:1440
    9421024msgid "Waiting for agent's response"
    9431025msgstr ""
     
    9461028#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:293
    9471029#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:369
    948 #: includes/core/class-ticket.php:1411
     1030#: includes/core/class-ticket.php:1438
    9491031msgid "Agent replied"
    9501032msgstr ""
     
    9531035#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:294
    9541036#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:370
    955 #: includes/core/class-ticket.php:1412
     1037#: includes/core/class-ticket.php:1439
    9561038msgid "Waiting for third side"
    9571039msgstr ""
     
    9911073#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:204
    9921074#: includes/admin/templates/page/ticketrilla-server-tickets-single.php:322
    993 #: includes/core/class-ticket.php:896 includes/core/class-ticket.php:1539
     1075#: includes/core/class-ticket.php:912 includes/core/class-ticket.php:1565
    9941076msgid "Client was refunded"
    9951077msgstr ""
     
    10801162#: includes/admin/templates/page/ticketrilla-server-users.php:268
    10811163#: includes/core/class-attachments.php:174
    1082 #: includes/core/class-attachments.php:305
    1083 #: includes/core/class-attachments.php:319
    1084 #: includes/core/class-attachments.php:346
    1085 #: includes/core/class-attachments.php:359
    1086 #: includes/core/class-attachments.php:374
    1087 #: includes/core/class-attachments.php:411
    1088 #: includes/core/class-attachments.php:423 includes/core/class-licenses.php:148
     1164#: includes/core/class-attachments.php:306
     1165#: includes/core/class-attachments.php:320
     1166#: includes/core/class-attachments.php:347
     1167#: includes/core/class-attachments.php:360
     1168#: includes/core/class-attachments.php:375
     1169#: includes/core/class-attachments.php:412
     1170#: includes/core/class-attachments.php:424 includes/core/class-licenses.php:148
    10891171msgid "Delete"
    10901172msgstr ""
     
    11591241#: includes/core/class-attachments.php:159
    11601242#: includes/core/class-attachments.php:174
    1161 #: includes/core/class-attachments.php:305
    1162 #: includes/core/class-attachments.php:319
    1163 #: includes/core/class-attachments.php:346
    1164 #: includes/core/class-attachments.php:359
    1165 #: includes/core/class-attachments.php:374
    1166 #: includes/core/class-attachments.php:411
    1167 #: includes/core/class-attachments.php:423
     1243#: includes/core/class-attachments.php:306
     1244#: includes/core/class-attachments.php:320
     1245#: includes/core/class-attachments.php:347
     1246#: includes/core/class-attachments.php:360
     1247#: includes/core/class-attachments.php:375
     1248#: includes/core/class-attachments.php:412
     1249#: includes/core/class-attachments.php:424
    11681250msgid "Delete this attachment"
    11691251msgstr ""
     
    11731255msgstr ""
    11741256
    1175 #: includes/core/class-attachments.php:314
     1257#: includes/core/class-attachments.php:315
    11761258msgid "You do not have sufficient permissions to write to folder: "
    11771259msgstr ""
    11781260
    1179 #: includes/core/class-attachments.php:341
     1261#: includes/core/class-attachments.php:342
    11801262msgid "Can't zip file."
    11811263msgstr ""
    11821264
    1183 #: includes/core/class-attachments.php:354
     1265#: includes/core/class-attachments.php:355
    11841266msgid "Unable to write file"
    11851267msgstr ""
    11861268
    1187 #: includes/core/class-attachments.php:369
     1269#: includes/core/class-attachments.php:370
    11881270msgid "Unable to generate md5 for file"
    11891271msgstr ""
    11901272
    1191 #: includes/core/class-attachments.php:418
     1273#: includes/core/class-attachments.php:419
    11921274msgid "No ticket ID"
    11931275msgstr ""
    11941276
    1195 #: includes/core/class-attachments.php:431 includes/core/class-ticket.php:614
     1277#: includes/core/class-attachments.php:432 includes/core/class-ticket.php:632
    11961278msgid "No attachments"
    11971279msgstr ""
    11981280
    1199 #: includes/core/class-attachments.php:794
     1281#: includes/core/class-attachments.php:795
    12001282msgid "All attachments are linked"
    12011283msgstr ""
    12021284
    1203 #: includes/core/class-attachments.php:834
     1285#: includes/core/class-attachments.php:836
    12041286msgid "An attachment with the specified ID does not exist"
    12051287msgstr ""
    12061288
    1207 #: includes/core/class-attachments.php:859
     1289#: includes/core/class-attachments.php:862
    12081290msgid "Attachment deleted"
    12091291msgstr ""
     
    14601542msgstr ""
    14611543
    1462 #: includes/core/class-ticket.php:381
     1544#: includes/core/class-ticket.php:393
    14631545msgid "Incorrect ticket status - current status remains"
    14641546msgstr ""
    14651547
    1466 #: includes/core/class-ticket.php:620
     1548#: includes/core/class-ticket.php:638
    14671549msgid "The ticket was added to the database"
    14681550msgstr ""
    14691551
    1470 #: includes/core/class-ticket.php:722 includes/core/class-ticket.php:1007
     1552#: includes/core/class-ticket.php:740
    14711553msgid "Free ticket"
    14721554msgstr ""
    14731555
    1474 #: includes/core/class-ticket.php:783
     1556#: includes/core/class-ticket.php:801
    14751557msgid "There are no free tickets"
    14761558msgstr ""
    14771559
    1478 #: includes/core/class-ticket.php:790
     1560#: includes/core/class-ticket.php:808
    14791561msgid "Take"
    14801562msgstr ""
    14811563
    1482 #: includes/core/class-ticket.php:804 includes/core/class-ticket.php:844
     1564#: includes/core/class-ticket.php:822 includes/core/class-ticket.php:862
    14831565msgid "Submit a ticket ID for editing"
    14841566msgstr ""
    14851567
    1486 #: includes/core/class-ticket.php:823 includes/core/class-ticket.php:865
     1568#: includes/core/class-ticket.php:841 includes/core/class-ticket.php:879
    14871569msgid "Received ticket - in the works"
    14881570msgstr ""
    14891571
    1490 #: includes/core/class-ticket.php:824
     1572#: includes/core/class-ticket.php:842
    14911573msgid "To ticket"
    14921574msgstr ""
    14931575
    1494 #: includes/core/class-ticket.php:829 includes/core/class-ticket.php:868
     1576#: includes/core/class-ticket.php:847
    14951577msgid "An error encountered while updating the database"
    14961578msgstr ""
    14971579
    1498 #: includes/core/class-ticket.php:832
     1580#: includes/core/class-ticket.php:850
    14991581msgid "This ticket is already being handled by another agent"
    15001582msgstr ""
    15011583
    1502 #: includes/core/class-ticket.php:835
     1584#: includes/core/class-ticket.php:853
    15031585msgid "You do not have sufficient rights for working with tickets"
    15041586msgstr ""
    15051587
    1506 #: includes/core/class-ticket.php:877
     1588#: includes/core/class-ticket.php:893
    15071589msgid "This status is already set"
    15081590msgstr ""
    15091591
    1510 #: includes/core/class-ticket.php:882
     1592#: includes/core/class-ticket.php:898
    15111593msgid "Specify a reason for closing this ticket"
    15121594msgstr ""
    15131595
    1514 #: includes/core/class-ticket.php:890 includes/core/class-ticket.php:1533
     1596#: includes/core/class-ticket.php:906 includes/core/class-ticket.php:1559
    15151597msgid "The issue has been resolved"
    15161598msgstr ""
    15171599
    1518 #: includes/core/class-ticket.php:893 includes/core/class-ticket.php:1536
     1600#: includes/core/class-ticket.php:909 includes/core/class-ticket.php:1562
    15191601msgid "Client closed the issue"
    15201602msgstr ""
    15211603
    1522 #: includes/core/class-ticket.php:913 includes/core/class-ticket.php:1414
     1604#: includes/core/class-ticket.php:929 includes/core/class-ticket.php:1441
    15231605msgid "Ticket closed"
    15241606msgstr ""
    15251607
    1526 #: includes/core/class-ticket.php:916 includes/core/class-ticket.php:990
     1608#: includes/core/class-ticket.php:932 includes/core/class-ticket.php:1002
    15271609msgid "Status changed"
    15281610msgstr ""
    15291611
    1530 #: includes/core/class-ticket.php:929
     1612#: includes/core/class-ticket.php:945
    15311613msgid "Status and agent has been changed"
    15321614msgstr ""
    15331615
    1534 #: includes/core/class-ticket.php:953
     1616#: includes/core/class-ticket.php:965
    15351617msgid "This agent is already working on this ticket"
    15361618msgstr ""
    15371619
    1538 #: includes/core/class-ticket.php:969 includes/core/class-ticket.php:996
     1620#: includes/core/class-ticket.php:981 includes/core/class-ticket.php:1008
    15391621msgid "Agent changed"
    15401622msgstr ""
    15411623
    1542 #: includes/core/class-ticket.php:972
     1624#: includes/core/class-ticket.php:984
    15431625msgid "Status or agent is not specified"
    15441626msgstr ""
    15451627
    1546 #: includes/core/class-ticket.php:974
     1628#: includes/core/class-ticket.php:986
    15471629msgid "This ticket is being handled by another agent"
    15481630msgstr ""
    15491631
    1550 #: includes/core/class-ticket.php:976
     1632#: includes/core/class-ticket.php:988
    15511633msgid "You do not have sufficient rights for updating this ticket"
    15521634msgstr ""
    15531635
    1554 #: includes/core/class-ticket.php:986
     1636#: includes/core/class-ticket.php:998
    15551637msgid "No changes"
    15561638msgstr ""
    15571639
    1558 #: includes/core/class-ticket.php:994
     1640#: includes/core/class-ticket.php:1006
    15591641msgid "Status and agent were changed"
    15601642msgstr ""
    15611643
    1562 #: includes/core/class-ticket.php:1241 includes/core/class-ticket.php:1242
     1644#: includes/core/class-ticket.php:1268 includes/core/class-ticket.php:1269
    15631645msgid "System"
    15641646msgstr ""
    15651647
    1566 #: includes/core/class-ticket.php:1333
     1648#: includes/core/class-ticket.php:1360
    15671649msgid "%1$s has received the ticket - in the works"
    15681650msgstr ""
    15691651
    1570 #: includes/core/class-ticket.php:1334
     1652#: includes/core/class-ticket.php:1361
    15711653msgid "%1$s has reassigned this ticket to %3$s"
    15721654msgstr ""
    15731655
    1574 #: includes/core/class-ticket.php:1335
     1656#: includes/core/class-ticket.php:1362
    15751657msgid "%1$s has reopened the ticket and reassigned to %3$s"
    15761658msgstr ""
    15771659
    1578 #: includes/core/class-ticket.php:1336
     1660#: includes/core/class-ticket.php:1363
    15791661msgid "%1$s has changed status to %2$s"
    15801662msgstr ""
    15811663
    1582 #: includes/core/class-ticket.php:1337
     1664#: includes/core/class-ticket.php:1364
    15831665msgid "%1$s has changed status to %2$s and reassigned this ticket to %3$s"
    15841666msgstr ""
    15851667
    1586 #: includes/core/class-ticket.php:1338
     1668#: includes/core/class-ticket.php:1365
    15871669msgid "%1$s has reopened the ticket and changed status to %2$s"
    15881670msgstr ""
    15891671
    1590 #: includes/core/class-ticket.php:1339
     1672#: includes/core/class-ticket.php:1366
    15911673msgid "%1$s has reopened the ticket, changed status to %2$s and reassigned to %3$s"
    15921674msgstr ""
    15931675
    1594 #: includes/core/class-ticket.php:1340
     1676#: includes/core/class-ticket.php:1367
    15951677msgid "%1$s has closed the ticket"
    15961678msgstr ""
    15971679
    1598 #: includes/core/class-ticket.php:1341
     1680#: includes/core/class-ticket.php:1368
    15991681msgid "%1$s has replied"
    16001682msgstr ""
    16011683
    1602 #: includes/core/class-ticket.php:1342
     1684#: includes/core/class-ticket.php:1369
    16031685msgid "Old system message"
    16041686msgstr ""
    16051687
    1606 #: includes/core/class-ticket.php:1343
     1688#: includes/core/class-ticket.php:1370
    16071689msgid "%1$s has added the ticket"
    16081690msgstr ""
    16091691
    1610 #: includes/core/class-ticket.php:1587
     1692#: includes/core/class-ticket.php:1613
    16111693msgid "Response added"
    16121694msgstr ""
     
    17811863
    17821864#. Description of the plugin/theme
    1783 msgid "Support for ‘Ticketrilla: Server’ - an innovative ticketing and licensing system."
     1865msgid "Developer's plugin for support of WordPress products"
    17841866msgstr ""
    17851867
  • ticketrilla-server/trunk/readme.txt

    r2172712 r2387080  
    44Tags: ticket system, ticket, helpdesk, support, license, envato licensing, support system, support center
    55Requires at least: 4.9.1
    6 Tested up to: 5.2.3
     6Tested up to: 5.5.1
    77Stable tag: trunk
    88Requires PHP: 5.6.0
     
    3939<li>Full security of file transfering, including the executable code</li>
    4040<li>Duplication of tickets on client's server. Client can view tickets even when the your server is disconnected</li>
     41<li>Additional functionality from many addons</li>
    4142</ul>
    4243
     
    5657
    5758== Changelog ==
     59= 1.0.4 =
     60* Added notifications for Telegram
     61* Fixed minor issues
    5862= 1.0.3 =
    5963* Release Date on WordPress catalog - 10 Octomber 2019
  • ticketrilla-server/trunk/ticketrilla-server.php

    r2172146 r2387080  
    55Author: Daniil Babkin
    66Description: Developer's plugin for support of WordPress products
    7 Version: 1.0.3
     7Version: 1.0.4
    88Text Domain: ttls_translate
     9*/
     10
     11/*
     12TTL Server: https://support.ticketrilla.com
     13TTL Description: Support for "Ticketrilla: Server" - an innovative ticketing and licensing system.
     14TTL Slug: ticketrilla-server
    915*/
    1016
     
    3339    define( 'TTLS_PATH', plugin_dir_path( __FILE__ ) );
    3440    define( 'TTLS_PLUGIN', plugin_basename( __FILE__ ) );
    35     define( 'TTLS_PLUGIN_VERSION', '1.0.3' );
     41    define( 'TTLS_PLUGIN_VERSION', '1.0.4' );
    3642
    3743
Note: See TracChangeset for help on using the changeset viewer.