mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-11-04 09:25:15 +00:00 
			
		
		
		
	Add search feature to SSL Certificates
This commit is contained in:
		@@ -3,6 +3,14 @@
 | 
			
		||||
    <div class="card-header">
 | 
			
		||||
        <h3 class="card-title"><%- i18n('certificates', 'title') %></h3>
 | 
			
		||||
        <div class="card-options">
 | 
			
		||||
            <form class="search-form" role="search">
 | 
			
		||||
                <div class="input-icon">
 | 
			
		||||
                    <span class="input-icon-addon">
 | 
			
		||||
                      <i class="fe fe-search"></i>
 | 
			
		||||
                    </span>
 | 
			
		||||
                    <input name="source-query" type="text" value="" class="form-control form-control-sm" placeholder="Search Certificates…" aria-label="Search in SSL Certificates">
 | 
			
		||||
                </div>
 | 
			
		||||
            </form>
 | 
			
		||||
            <a href="#" class="btn btn-outline-secondary btn-sm ml-2 help"><i class="fe fe-help-circle"></i></a>
 | 
			
		||||
            <% if (showAddButton) { %>
 | 
			
		||||
            <div class="dropdown">
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,44 @@ module.exports = Mn.View.extend({
 | 
			
		||||
        list_region: '.list-region',
 | 
			
		||||
        add:         '.add-item',
 | 
			
		||||
        help:        '.help',
 | 
			
		||||
        dimmer:      '.dimmer'
 | 
			
		||||
        dimmer:      '.dimmer',
 | 
			
		||||
        search:      '.search-form',
 | 
			
		||||
        query:       'input[name="source-query"]'
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    fetch: App.Api.Nginx.Certificates.getAll,
 | 
			
		||||
 | 
			
		||||
    showData: function(response) {
 | 
			
		||||
        this.showChildView('list_region', new ListView({
 | 
			
		||||
            collection: new CertificateModel.Collection(response)
 | 
			
		||||
        }));
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    showError: function(err) {
 | 
			
		||||
        this.showChildView('list_region', new ErrorView({
 | 
			
		||||
            code:    err.code,
 | 
			
		||||
            message: err.message,
 | 
			
		||||
            retry:   function () {
 | 
			
		||||
                App.Controller.showNginxCertificates();
 | 
			
		||||
            }
 | 
			
		||||
        }));
 | 
			
		||||
 | 
			
		||||
        console.error(err);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    showEmpty: function() {
 | 
			
		||||
        let manage = App.Cache.User.canManage('certificates');
 | 
			
		||||
 | 
			
		||||
        this.showChildView('list_region', new EmptyView({
 | 
			
		||||
            title:      App.i18n('certificates', 'empty'),
 | 
			
		||||
            subtitle:   App.i18n('all-hosts', 'empty-subtitle', {manage: manage}),
 | 
			
		||||
            link:       manage ? App.i18n('certificates', 'add') : null,
 | 
			
		||||
            btn_color:  'pink',
 | 
			
		||||
            permission: 'certificates',
 | 
			
		||||
            action:     function () {
 | 
			
		||||
                App.Controller.showNginxCertificateForm();
 | 
			
		||||
            }
 | 
			
		||||
        }));
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    regions: {
 | 
			
		||||
@@ -31,6 +68,17 @@ module.exports = Mn.View.extend({
 | 
			
		||||
        'click @ui.help': function (e) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            App.Controller.showHelp(App.i18n('certificates', 'help-title'), App.i18n('certificates', 'help-content'));
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        'submit @ui.search': function (e) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            let query = this.ui.query.val();
 | 
			
		||||
 | 
			
		||||
            this.fetch(['owner'], query)
 | 
			
		||||
                .then(response => this.showData(response))
 | 
			
		||||
                .catch(err => {
 | 
			
		||||
                    this.showError(err);
 | 
			
		||||
                });
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
@@ -41,39 +89,18 @@ module.exports = Mn.View.extend({
 | 
			
		||||
    onRender: function () {
 | 
			
		||||
        let view = this;
 | 
			
		||||
 | 
			
		||||
        App.Api.Nginx.Certificates.getAll(['owner'])
 | 
			
		||||
        view.fetch(['owner'])
 | 
			
		||||
            .then(response => {
 | 
			
		||||
                if (!view.isDestroyed()) {
 | 
			
		||||
                    if (response && response.length) {
 | 
			
		||||
                        view.showChildView('list_region', new ListView({
 | 
			
		||||
                            collection: new CertificateModel.Collection(response)
 | 
			
		||||
                        }));
 | 
			
		||||
                        view.showData(response);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        let manage = App.Cache.User.canManage('certificates');
 | 
			
		||||
 | 
			
		||||
                        view.showChildView('list_region', new EmptyView({
 | 
			
		||||
                            title:      App.i18n('certificates', 'empty'),
 | 
			
		||||
                            subtitle:   App.i18n('all-hosts', 'empty-subtitle', {manage: manage}),
 | 
			
		||||
                            link:       manage ? App.i18n('certificates', 'add') : null,
 | 
			
		||||
                            btn_color:  'pink',
 | 
			
		||||
                            permission: 'certificates',
 | 
			
		||||
                            action:     function () {
 | 
			
		||||
                                App.Controller.showNginxCertificateForm();
 | 
			
		||||
                            }
 | 
			
		||||
                        }));
 | 
			
		||||
                        view.showEmpty();
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            })
 | 
			
		||||
            .catch(err => {
 | 
			
		||||
                view.showChildView('list_region', new ErrorView({
 | 
			
		||||
                    code:    err.code,
 | 
			
		||||
                    message: err.message,
 | 
			
		||||
                    retry:   function () {
 | 
			
		||||
                        App.Controller.showNginxCertificates();
 | 
			
		||||
                    }
 | 
			
		||||
                }));
 | 
			
		||||
 | 
			
		||||
                console.error(err);
 | 
			
		||||
                view.showError(err);
 | 
			
		||||
            })
 | 
			
		||||
            .then(() => {
 | 
			
		||||
                view.ui.dimmer.removeClass('active');
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user