Ejemplo n.º 1
0
 this.$('a[data-toggle="tab"]').on('shown.bs.tab', (e) => {
     this.currentView = $(e.currentTarget).attr('name');
     if (this.userId) {
         router.navigate(`jobs/user/${this.userId}/${this.currentView}`);
     } else {
         router.navigate(`jobs/${this.currentView}`);
     }
     this.render();
 });
Ejemplo n.º 2
0
Archivo: App.js Proyecto: girder/girder
    login: function () {
        var route = splitRoute(Backbone.history.fragment).base;
        Backbone.history.fragment = null;
        eventStream.close();

        if (getCurrentUser()) {
            eventStream.open();
            router.navigate(route, {trigger: true});
        } else {
            router.navigate('/', {trigger: true});
        }
    }
Ejemplo n.º 3
0
    initialize: function (settings) {
        this.tab = settings.tab || 'info';
        this.user = settings.user || getCurrentUser();
        this.isCurrentUser = getCurrentUser() &&
            settings.user.id === getCurrentUser().id;

        this.model = this.user;
        this.temporary = settings.temporary;

        if (!this.user || this.user.getAccessLevel() < AccessType.WRITE) {
            router.navigate('', {trigger: true});
            return;
        }

        cancelRestRequests('fetch');

        this.apiKeyListWidget = new ApiKeyListWidget({
            user: this.user,
            parentView: this
        });

        this.userOtpManagementWidget = new UserOtpManagementWidget({
            user: this.user,
            parentView: this
        });

        this.render();
    },
Ejemplo n.º 4
0
    render: function () {
        if (getCurrentUser() === null) {
            router.navigate('users', {trigger: true});
            return;
        }

        this.$el.html('<div id="headerBar"></div><div class="Wrapper"><div class="Content"><div class="viewMain">' + UserAccountTemplate({
            user: this.model,
            isCurrentUser: this.isCurrentUser,
            getCurrentUser: getCurrentUser,
            temporaryToken: this.temporary
        }) + '</div></div></div>');
        new MenuBarView({ // eslint-disable-line no-new
            el: this.$('#headerBar'),
            parentView: this
        });
        // Remove unneeded pages from the Girder User page
        this.$('[name="apikeys"]').parent().remove();
        this.$('[name="otp"]').parent().remove();
        // Add in custom page for selecting notifications.
        this.$('.g-account-tabs').append(NotificationTabTemplate());
        this.$('.tab-content').append(NotificationTabFormTemplate());
        var notifications = this.user.attributes.notificationStatus;
        Object.keys(this.user.attributes.notificationStatus).forEach(function (d) {
            var value = '0';
            if (notifications[d]) { value = '1'; }
            $(`[name=${d}][value=${value}]`).prop('checked', true);
        });
        return this;
    }
Ejemplo n.º 5
0
 'submit #createJournalForm': function (event) {
     event.preventDefault();
     var values = {issueName: this.$('#name')[0].value,
         issueDescription: this.$('#description')[0].value
     };
     this._createJournal(values);
     router.navigate('#plugins/journal/admin', {trigger: true});
 }
Ejemplo n.º 6
0
        }).done((resp) => {
            var logoURL = '';
            if (resp.length > 0) {
                logoURL = `${apiRoot}/${resp}`;
            }
            this.$el.html(SubmissionViewTemplate({
                'urlLink': urlLink,
                user: this.currentUser,
                info: {
                    'revision': currentRev,
                    'parent': submission,
                    'otherRevisions': otherRevs
                },
                logo: logoURL
            }));

            // Import JS and CSS needed for share buttons after render
            // ******************************************************
            socialLikes(this.$('.social-likes')[0], {
                url: urlLink
            });
            // ******************************************************
            this.$('#reviewDisplay').find('.peer').empty();
            this.$('#reviewDisplay').find('.final').empty();
            new MenuBarView({ // eslint-disable-line no-new
                el: this.$('#headerBar'),
                parentView: this
            });
            var review = {};
            this.$(`.revisionOption[value=${currentRev._id}]`).prop('selected', true);
            if (currentRev.meta.revisionPhase === 'final') {
                this.$('#reviewDisplay').find('.peer').hide();
                this.$('#reviewDisplay').append(`<a id='showHidden'> Show Hidden Reviews</a>`);
            }

            for (var index in currentRev.meta.reviews.peer.reviews) {
                review = currentRev.meta.reviews.peer.reviews[index];
                this.$('#reviewDisplay').find('.peer').append(`<a href="#review/${currentRev._id}/peer/${index}"> Peer Review by ${review.user.firstName} ${review.user.lastName}</a>`);
                this.$('#reviewDisplay').find('.peer').append(PeerReviewSummary({'review': review}));
            }
            for (index in currentRev.meta.reviews.final.reviews) {
                review = currentRev.meta.reviews.final.reviews[index];
                this.$('#reviewDisplay .final').append(`<a href="#review/${currentRev._id}/final/${index}"> Final Review by ${review.user.firstName} ${review.user.lastName}</a>`);
                this.$('#reviewDisplay .final').append(FinalReviewSummary({'review': review}));
            }
            // Replace the URL with one showing both the submission and revision
            // IDs.
            router.navigate(`view/${submission.meta.submissionNumber}/${this.currentRevision.meta.revisionNumber}`, {
                trigger: false,
                replace: true
            }, this);
            return this;
        });
Ejemplo n.º 7
0
            tabLink.tab().on('shown.bs.tab', (e) => {
                this.tab = $(e.currentTarget).attr('name');
                router.navigate('useraccount/' + this.model.id + '/' + this.tab);

                if (this.tab === 'apikeys') {
                    this.apiKeyListWidget.setElement(
                        this.$('.g-api-keys-list-container')).render();
                } else if (this.tab === 'otp') {
                    this.userOtpManagementWidget
                        .setElement(this.$('.g-account-otp-container'))
                        .render();
                }
            });
Ejemplo n.º 8
0
 'click #dataFormSubmit': function (event) {
     var values = {issueName: this.$('#issueName')[0].value,
         issueDescription: this.$('#issueDescription')[0].value,
         'paperDue': $('.datepicker')[0].value,
         'publisherLicense': this.$('#publishLicense').val(),
         'authorLicense': this.$('#authorLicense').val()
     };
     if (this.update) {
         this._updateIssue(values);
     } else {
         this._createIssue(values);
     }
     router.navigate('#plugins/journal/admin', {trigger: true});
 },
Ejemplo n.º 9
0
    initialize: function (settings) {
        this.user = getCurrentUser();
        this.isCurrentUser = getCurrentUser();

        this.model = this.user;

        if (!this.user || this.user.getAccessLevel() < AccessType.WRITE) {
            router.navigate('users', {trigger: true});
            return;
        }

        cancelRestRequests('fetch');

        this.render();
        // Remove the API keys tab from the user view
    },
Ejemplo n.º 10
0
function handleClose(name, options, nameId) {
    if (!router.enabled()) {
        return;
    }
    var curRoute = Backbone.history.fragment,
        routeParts = splitRoute(curRoute),
        queryString = parseQueryString(routeParts.name),
        dialogName = queryString.dialog,
        dialogId = queryString.dialogid;
    delete queryString.dialog;
    delete queryString.dialogid;
    var unparsedQueryString = $.param(queryString);
    if (unparsedQueryString.length > 0) {
        unparsedQueryString = '?' + unparsedQueryString;
    }
    if (dialogName === name && dialogId === nameId) {
        router.navigate(routeParts.base + unparsedQueryString, options);
    }
}
Ejemplo n.º 11
0
function handleOpen(name, options, nameId) {
    if (!router.enabled()) {
        return;
    }
    var curRoute = Backbone.history.fragment,
        routeParts = splitRoute(curRoute),
        queryString = parseQueryString(routeParts.name),
        dialogName = queryString.dialog,
        dialogId = queryString.dialogid;

    if (dialogName !== name || nameId !== dialogId) {
        queryString.dialog = name;
        if (nameId) {
            queryString.dialogid = nameId;
        }
        var unparsedQueryString = $.param(queryString);
        if (unparsedQueryString.length > 0) {
            unparsedQueryString = '?' + unparsedQueryString;
        }
        router.navigate(routeParts.base + unparsedQueryString, options);
    }
}
Ejemplo n.º 12
0
    render: function () {
        if (getCurrentUser() === null) {
            router.navigate('', {trigger: true});
            return;
        }

        this.$el.html(UserAccountTemplate({
            user: this.model,
            isCurrentUser: this.isCurrentUser,
            getCurrentUser: getCurrentUser,
            temporaryToken: this.temporary
        }));

        _.each($('.g-account-tabs>li>a'), function (el) {
            var tabLink = $(el);
            tabLink.tab().on('shown.bs.tab', (e) => {
                this.tab = $(e.currentTarget).attr('name');
                router.navigate('useraccount/' + this.model.id + '/' + this.tab);

                if (this.tab === 'apikeys') {
                    this.apiKeyListWidget.setElement(
                        this.$('.g-api-keys-list-container')).render();
                } else if (this.tab === 'otp') {
                    this.userOtpManagementWidget
                        .setElement(this.$('.g-account-otp-container'))
                        .render();
                }
            });

            if (tabLink.attr('name') === this.tab) {
                tabLink.tab('show');
            }
        }, this);

        return this;
    }
Ejemplo n.º 13
0
 }).done((resp) => {
     router.navigate(this.returnURL, {trigger: true});
 });
Ejemplo n.º 14
0
 'click #downloadLink': function (event) {
     router.navigate(`#view/${this.revisionId}/download`, {trigger: true});
 },
Ejemplo n.º 15
0
 }).done((resp) => {
     router.navigate(``, {trigger: true});
 });
Ejemplo n.º 16
0
 }).done((revision) => {
     router.navigate(`#view/${this.submission.meta.submissionNumber}/${revision.meta.revisionNumber}`, {trigger: true});
 });
Ejemplo n.º 17
0
 'click .clickable-row': function (event) {
     router.navigate(`view/${event.target.parentNode.dataset.submission}/${event.target.parentNode.dataset.href}`, {trigger: true});
 },
Ejemplo n.º 18
0
 }, this).on('g:error', function () {
     router.navigate('', {trigger: true});
 }, this).fetch();
Ejemplo n.º 19
0
 'click #dataFormCancel': function (event) {
     router.navigate('#plugins/journal/admin', {trigger: true});
 },
Ejemplo n.º 20
0
 'click .g-job-worker-task-info': function (event) {
     router.navigate('#plugins/worker/task/status', {trigger: true});
 }
Ejemplo n.º 21
0
 }).fail(() => {
     router.navigate('', {trigger: true});
 });