Current Path : /var/www/alh/admin/view/template/marketplace/ |
Current File : /var/www/alh/admin/view/template/marketplace/marketplace_info.twig |
{{ header }}{{ column_left }} <div id="content"> <div class="page-header"> <div class="container-fluid"> <div class="pull-right">{% if not error_signature %} <button type="button" id="button-opencart" data-toggle="tooltip" title="{{ button_opencart }}" class="btn btn-info"><i class="fa fa-cog"></i></button> {% else %} <button type="button" id="button-opencart" data-toggle="tooltip" title="{{ error_signature }}" data-placement="left" class="btn btn-danger"><i class="fa fa-exclamation-triangle"></i></button> {% endif %} <a href="{{ cancel }}" data-toggle="tooltip" title="{{ button_cancel }}" class="btn btn-default"><i class="fa fa-reply"></i></a></div> <h1>{{ heading_title }}</h1> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> </div> </div> <div id="marketplace-extension-info" class="container-fluid">{% if error_warning %} <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }} <button type="button" class="close" data-dismiss="alert">×</button> </div> {% endif %} <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-puzzle-piece"></i> {{ name }}</h3> </div> <div class="panel-body"> <div class="row extension-info"> <div class="col-sm-8">{% if banner %} <div id="banner" class="text-center thumbnail"><img src="{{ banner }}" title="{{ name }}" alt="{{ name }}" class="img-responsive" /></div> {% endif %} <div class="row thumbnails">{% for image in images %} <div class="col-xs-4 col-sm-2"><a href="{{ image.popup }}" class="thumbnail"><img src="{{ image.thumb }}" alt="{{ image.name }}" title="{{ image.name }}" class="img-responsive" /></a></div> {% endfor %} </div> <ul class="nav nav-tabs"> <li class="active"><a href="#tab-description" data-toggle="tab">{{ tab_general }}</a></li> <li><a href="#tab-documentation" data-toggle="tab">{{ tab_documentation }}</a></li> <li><a href="#tab-download" data-toggle="tab">{{ tab_download }}</a></li> <li><a href="#tab-comment" data-toggle="tab">{{ tab_comment }} ({{ comment_total }})</a></li> </ul> <div class="tab-content"> <div id="tab-description" class="tab-pane active">{{ description }}</div> <div id="tab-documentation" class="tab-pane">{{ documentation }}</div> <div id="tab-download" class="tab-pane"> <fieldset> <legend>{{ text_progress }}</legend> <div id="progress"> <div class="progress"> <div id="progress-bar" class="progress-bar" style="width: 0%;"></div> </div> <div id="progress-text"></div> </div> <hr /> </fieldset> <fieldset> <legend>{{ text_available }}</legend> <table class="table table-bordered"> <thead> <th>{{ text_name }}</th> <th>{{ text_date_added }}</th> <th class="text-right">{{ text_action }}</th> </thead> <tbody> {% if downloads %} {% for download in downloads %} <tr> <td>{{ download.name }}</td> <td>{{ download.date_added }}</td> <td class="text-right">{% if download.extension_install_id %} <button type="button" data-install="{{ download.extension_download_id }}" data-uninstall="{{ download.extension_install_id }}" data-loading="{{ text_loading }}" class="btn btn-danger"><i class="fa fa-trash-o"></i> {{ button_uninstall }}</button> {% elseif download.filename|slice(-10) == '.ocmod.zip' %} <button type="button" data-install="{{ download.extension_download_id }}" data-uninstall="" data-loading="{{ text_loading }}" class="btn btn-primary"{% if not download.status %} disabled{% endif %}><i class="fa fa-download"></i> {{ button_install }}</button> {% else %} <button type="button" data-install="{{ download.extension_download_id }}" data-uninstall="" data-loading="{{ text_loading }}" class="btn btn-primary"{% if not download.status %} disabled{% endif %}><i class="fa fa-download"></i> {{ button_download }}</button> {% endif %}</td> </tr> {% endfor %} {% else %} <tr> <td colspan="3" class="text-center">{{ text_no_results }}</td> </tr> {% endif %} </tbody> </table> </fieldset> </div> <div id="tab-comment" class="tab-pane"> <fieldset> <legend>{{ text_comment_add }}</legend> <div class="form-group"> <textarea name="comment" rows="5" placeholder="{{ text_write }}" id="input-comment" class="form-control"></textarea> </div> <div class="text-right"> <button type="button" id="button-comment" class="btn btn-primary">{{ button_comment }}</button> </div> </fieldset> <br /> <fieldset> <legend>{{ text_comment }}</legend> <div id="comment"></div> </fieldset> </div> </div> </div> <div class="col-sm-4"> <div id="buy" class="well">{% if license == '1' and not purchased %} <button id="button-buy" class="btn btn-success btn-lg btn-block">{{ button_purchase }}</button> {% endif %} <div id="price" class="row"> <div class="col-xs-5"><strong>{{ text_price }}</strong></div> <div class="col-xs-7 text-right">{% if license %} {{ price }} {% else %} {{ text_free }} {% endif %}</div> </div> <hr> <ul class="list-check"> <li>{{ text_partner }}</li> <li>{{ text_support }}</li> <li>{{ text_documentation }}</li> </ul> <hr> <div class="row"> <div class="col-xs-5"><strong>{{ text_rating }}</strong></div> <div class="col-xs-7 text-right">{% for i in 1..5 %} {% if rating >= i %}<i class="fa fa-star"></i>{% else %}<i class="fa fa-star-o"></i>{% endif %} {% endfor %} ({{ rating_total }})</div> </div> <hr> <div class="row"> <div class="col-xs-5"><strong>{{ text_date_modified }}</strong></div> <div class="col-xs-7 text-right">{{ date_modified }}</div> </div> <hr> <div class="row"> <div class="col-xs-5"><strong>{{ text_date_added }}</strong></div> <div class="col-xs-7 text-right">{{ date_added }}</div> </div> </div> <div id="sales" class="well"><i class="opencart-icon-cart-mini"></i> <strong>{{ sales }}</strong> {{ text_sales }}</div> <div id="sales" class="well"><i class="opencart-icon-cart-mini"></i> <strong>{{ downloaded }}</strong> {{ text_downloaded }}</div> <div class="well"> <div class="media"> <div class="media-left media-middle"><img src="{{ member_image }}" alt="{{ member_username }}" title="{{ member_username }}" class="media-object img-circle"></div> <div class="media-body"> <span><a href="{{ filter_member }}">{{ member_username }}</a></span><br> <small>{{ text_member_since }} {{ member_date_added }}</small></div> </div> <br /> <a href="{{ filter_member }}" class="btn btn-primary btn-lg btn-block">{{ button_view_all }}</a> <a href="https://www.opencart.com/index.php?route=support/seller&extension_id={{ extension_id }}" target="_blank" class="btn btn-ghost-dark btn-lg btn-block">{{ button_get_support }}</a></div> </div> </div> </div> </div> </div> <script type="text/javascript"><!-- $('#button-opencart').on('click', function(e) { $('#modal-opencart').remove(); $.ajax({ url: 'index.php?route=marketplace/api&user_token={{ user_token }}', dataType: 'html', beforeSend: function() { $('#button-opencart').button('loading'); }, complete: function() { $('#button-opencart').button('reset'); }, success: function(html) { $('body').append('<div id="modal-opencart" class="modal">' + html + '</div>'); $('#modal-opencart').modal('show'); }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); //--></script> <script type="text/javascript"><!-- $('#button-buy').on('click', function(e) { e.preventDefault(); $('#modal-purchase').remove(); html = '<div id="modal-purchase" class="modal">'; html += ' <div class="modal-dialog">'; html += ' <div class="modal-content">'; html += ' <div class="modal-header">'; html += ' <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>'; html += ' <h4 class="modal-title">{{ text_purchase }}</h4>'; html += ' </div>'; html += ' <div class="modal-body">'; html += ' <p>{{ text_pin }}</p>'; html += ' <p>{{ text_secure }}</p>'; html += ' <div class="form-group">'; html += ' <label for="input-pin">{{ entry_pin }}</label>'; html += ' <input type="password" name="pin" value="" placeholder="{{ entry_pin }}" id="input-pin" class="form-control" />'; html += ' </div>'; html += ' <div class="form-group text-right">'; html += ' <button type="button" id="button-purchase" data-loading-text="{{ text_loading }}" class="btn btn-primary btn-lg">{{ button_purchase }}</button>'; html += ' </div>'; html += ' </div>'; html += ' </div>'; html += ' </div>'; html += '</div>'; $('body').append(html); $('#modal-purchase').modal('show'); }); $('body').on('click', '#modal-purchase #button-purchase', function(e) { e.preventDefault(); var element = this; $.ajax({ url: 'index.php?route=marketplace/marketplace/purchase&user_token={{ user_token }}&extension_id={{ extension_id }}', type: 'post', data: $('input[name=\'pin\']'), dataType: 'json', beforeSend: function() { $(element).button('loading'); }, complete: function() { $(element).button('reset'); }, success: function(json) { $('.alert-dismissible').remove(); if (json['error']) { $('#modal-purchase .modal-body').prepend('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>'); } if (json['success']) { $('#content > .container-fluid').prepend('<div class="alert alert-success alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>'); $('#modal-purchase').modal('hide'); $('#tab-download .btn-primary').prop('disabled', false); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); // Install $('#tab-download').on('click', '.btn-primary', function(e) { e.preventDefault(); var element = this; // Reset everything $('#progress-bar').css('width', '0%'); $('#progress-bar').removeClass('progress-bar-success'); $('#progress-text').html(''); $.ajax({ url: 'index.php?route=marketplace/marketplace/download&user_token={{ user_token }}&extension_id={{ extension_id }}&extension_download_id=' + $(this).attr('data-install'), dataType: 'json', beforeSend: function() { $(element).button('loading'); }, complete: function() { $(element).button('reset'); }, success: function(json) { $('.alert-dismissible').remove(); if (json['error']) { $('#tab-download').prepend('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + ' <button type="button" class="close" data-dismiss="alert">×</button</div>'); } if (json['redirect']) { location = json['redirect']; } if (json['text']) { $('#progress-bar').css('width', '20%'); $('#progress-text').html(json['text']); } if (json['extension_install_id']) { $(element).replaceWith('<button type="button" data-install="' + $(element).attr('data-install') + '" data-uninstall="' + json['extension_install_id'] + '" data-loading="{{ text_loading }}" class="btn btn-danger"><i class="fa fa-trash-o"></i> {{ button_uninstall }}</button>'); } if (json['next']) { next(json['next'], element, 1); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); function next(url, element, i) { i = i + 1; $.ajax({ url: url, dataType: 'json', success: function(json) { $('#progress-bar').css('width', (i * 20) + '%'); if (json['error']) { $('#progress-bar').addClass('progress-bar-danger'); $('#progress-text').html('<div class="text-danger">' + json['error'] + '</div>'); } if (json['success']) { $('#progress-bar').addClass('progress-bar-success'); $('#progress-text').html('<span class="text-success">' + json['success'] + '</span>'); } if (json['text']) { $('#progress-text').html(json['text']); } if (json['next']) { next(json['next'], element, i); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); } // Uninstall $('#tab-download').on('click', ' .btn-danger', function(e) { e.preventDefault(); var element = this; $('#progress-bar').css('width', '0%'); $('#progress-bar').removeClass('progress-bar-danger progress-bar-success'); $('#progress-text').html(''); $.ajax({ url: 'index.php?route=marketplace/install/uninstall&user_token={{ user_token }}&extension_install_id=' + $(this).attr('data-uninstall'), dataType: 'json', beforeSend: function() { $(element).button('loading'); }, complete: function() { $(element).button('reset'); }, success: function(json) { if (json['error']) { $('#progress-bar').addClass('progress-bar-danger'); $('#progress-text').html(json['error']); } if (json['success']) { $('#progress-bar').css('width', '100%'); $('#progress-bar').addClass('progress-bar-success'); $('#progress-text').html(json['success']); $(element).replaceWith('<button type="button" data-install="' + $(element).attr('data-install') + '" data-uninstall="" data-loading="{{ text_loading }}" class="btn btn-primary"><i class="fa fa-download"></i> {{ button_install }}</button>'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); $('#comment').delegate('.pagination a', 'click', function(e) { e.preventDefault(); $('#comment').load(this.href); }); // Comment $('#comment').load('index.php?route=marketplace/marketplace/comment&user_token={{ user_token }}&extension_id={{ extension_id }}'); // Add comment $('#button-comment').on('click', function() { $.ajax({ url: 'index.php?route=marketplace/marketplace/addcomment&user_token={{ user_token }}&extension_id={{ extension_id }}', type: 'post', dataType: 'json', data: 'comment=' + encodeURIComponent($('textarea[name=\'comment\']').val()), beforeSend: function() { $('#button-comment').button('loading'); }, complete: function() { $('#button-comment').button('reset'); }, success: function(json) { $('.alert-dismissible').remove(); if (json['error']) { $('#tab-comment').prepend('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>'); } if (json['success']) { $('#tab-comment').prepend('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>'); $('#comment').load('index.php?route=marketplace/marketplace/comment&user_token={{ user_token }}&extension_id={{ extension_id }}'); $('textarea[name=\'comment\']').val(''); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); // Next replies $('#comment').on('click', '.btn-block', function(e) { e.preventDefault(); var element = this; $.ajax({ url: $(element).attr('href'), dataType: 'html', beforeSend: function() { $(element).button('loading'); }, complete: function() { $(element).button('reset'); }, success: function(html) { $(element).parent().parent().parent().append(html); $(element).parent().remove(); }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); // Reply $('#comment').on('click', '.btn-link', function(e) { e.preventDefault(); $(this).parent().parent().find('.reply-input-box').toggle(); }); // Add reply $('#comment').on('click', '.btn-primary', function(e) { e.preventDefault(); var element = this; $.ajax({ url: $(element).attr('href'), type: 'post', dataType: 'json', data: 'comment=' + encodeURIComponent($(element).parents('.reply-input-box').find('textarea[name=\'comment\']').val()), beforeSend: function() { $(element).button('loading'); }, complete: function() { $(element).button('reset'); }, success: function(json) { $('.alert-dismissible').remove(); if (json['error']) { $(element).parents('.reply-input-box').before('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>'); } if (json['success']) { $(element).parents('.reply-input-box').before('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>'); $(element).parents('.reply-input-box').parents('.media').find('.reply-refresh').last().trigger('click'); $(element).parents('.reply-input-box').find('textarea[name=\'comment\']').val(''); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); // Refresh $('#comment').on('click', '.reply-refresh', function(e) { e.preventDefault(); var element = this; $.ajax({ url: $(element).attr('href'), dataType: 'html', beforeSend: function() { $(element).button('loading'); }, complete: function() { $(element).button('reset'); }, success: function(html) { $(element).parent().replaceWith(html); }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); //--></script> <script type="text/javascript"><!-- $(document).ready(function() { $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); }); //--></script> </div> {{ footer }}