'success': _.bind(function() {
                    mediator.execute('hideLoading');

                    var redirectUrl = '';
                    var modelName = this.model.get('name');
                    var saveAndClose = this.workflowManagementView.submitActor &&
                            !$(this.workflowManagementView.submitActor).is('[data-action="save_and_stay"]');
                    if (saveAndClose) {
                        redirectUrl = routing.generate('oro_workflow_definition_view', {name: modelName});
                    } else {
                        redirectUrl = routing.generate('oro_workflow_definition_update', {name: modelName});
                    }

                    mediator.once('page:afterChange', function() {
                        messenger.notificationFlashMessage('success', __('Workflow saved.'));
                        messenger.notificationFlashMessage(
                            'warning',
                            __(
                                'oro.workflow.translation_rebuild_required',
                                {path: routing.generate('oro_translation_translation_index')}
                            )
                        );
                    });
                    mediator.execute('redirectTo', {url: redirectUrl}, {redirect: true});
                }, this),
 success: function(response) {
     if (response && response.message) {
         mediator.once('page:afterChange', function() {
             var status = response.successful ? 'success' : 'error';
             mediator.execute('showFlashMessage', status, response.message);
         });
     }
     mediator.execute('refreshPage');
 },
Example #3
0
 $.post(url, function() {
     if (reloadRequired) {
         mediator.once('page:update', function() {
             mediator.execute('showFlashMessage', 'success', __(options.successMessage));
         });
         mediator.execute('refreshPage');
     } else {
         mediator.execute('showFlashMessage', 'success', __(options.successMessage));
     }
 }).error(function() {
Example #4
0
        initPopoverForElements: function($items, options, overrideOptionsByData) {
            options = _.defaults(options || {}, {
                animation: false,
                delay: {show: 0, hide: 0},
                html: true,
                container: false,
                trigger: 'manual'
            });

            if (overrideOptionsByData) {
                options = $.extend(options, $items.data());
            }

            $items.not('[data-close="false"]').each(function(i, el) {
                // append close link
                var content = $(el).data('content');
                content += '<i class="fa-close popover-close"></i>';
                $(el).data('content', content);
            });

            $items.popover(options).on('click.popover', function(e) {
                if ($(this).is('.disabled, :disabled')) {
                    return;
                }

                $(this).popover('toggle');
                e.preventDefault();
            });

            $('body')
                .on('click.popover-hide', function(e) {
                    var $target = $(e.target);
                    $items.each(function() {
                        // the 'is' for buttons that trigger popups
                        // the 'has' for icons within a button that triggers a popup
                        if (
                            !$(this).is($target) &&
                                $(this).has($target).length === 0 &&
                                ($('.popover').has($target).length === 0 || $target.hasClass('popover-close'))
                        ) {
                            $(this).popover('hide');
                        }
                    });
                }).on('click.popover-prevent', '.popover', function(e) {
                    if (e.target.tagName.toLowerCase() !== 'a') {
                        e.preventDefault();
                    }
                }).on('focus.popover-hide', 'select, input, textarea', function() {
                    $items.popover('hide');
                });
            mediator.once('page:request', function() {
                $('body').off('.popover-hide .popover-prevent');
            });
        },
Example #5
0
        doResponse: function(response, e) {
            var callback = _.bind(function() {
                this._showFlashMessages(response);
            }, this);

            if (response.redirectUrl) {
                mediator.once('page:afterChange', callback);
                this.doRedirect(response.redirectUrl);
            } else if (response.refreshGrid) {
                mediator.execute('hideLoading');
                _.each(response.refreshGrid, function(gridname) {
                    mediator.trigger('datagrid:doRefresh:' + gridname);
                });
                this.doWidgetReload();
                this._showFlashMessages(response);
            } else {
                mediator.once('page:afterChange', callback);

                this.doPageReload(response);
            }
        },
Example #6
0
        initialize: function (id, options) {
            var self = this;
            this.options = _.extend({}, this.options, options);
            this.items = [];

            mediator.on('items-manager:table:reset:' + self.options.fieldsTableIdentifier, function (collection) {
                self.updateCollection(collection);
                self.validateSelect2(id);
            });

            mediator.once('items-manager:table:reset:' + self.options.fieldsTableIdentifier, function () {
                self.initSelect2(id);
                self.initializeListeners(id);
            });
        },
Example #7
0
        initPopover: function(container) {
            var $items = container.find('[data-toggle="popover"]').filter(function() {
                // skip already initialized popovers
                return !$(this).data('popover');
            });
            $items.not('[data-close="false"]').each(function(i, el) {
                //append close link
                var content = $(el).data('content');
                content += '<i class="icon-remove popover-close"></i>';
                $(el).data('content', content);
            });

            $items.popover({
                animation: false,
                delay: {show: 0, hide: 0},
                html: true,
                container: false,
                trigger: 'manual'
            }).on('click.popover', function(e) {
                $(this).popover('toggle');
                e.preventDefault();
            });

            $('body')
                .on('click.popover-hide', function(e) {
                    var $target = $(e.target);
                    $items.each(function() {
                        //the 'is' for buttons that trigger popups
                        //the 'has' for icons within a button that triggers a popup
                        if (
                            !$(this).is($target) &&
                                $(this).has($target).length === 0 &&
                                ($('.popover').has($target).length === 0 || $target.hasClass('popover-close'))
                        ) {
                            $(this).popover('hide');
                        }
                    });
                }).on('click.popover-prevent', '.popover', function(e) {
                    if (e.target.tagName.toLowerCase() !== 'a') {
                        e.preventDefault();
                    }
                }).on('focus.popover-hide', 'select, input, textarea', function() {
                    $items.popover('hide');
                });
            mediator.once('page:request', function() {
                $('body').off('.popover-hide .popover-prevent');
            });
        },
        _processResponse: function(url, message) {
            if (url) {
                if (message) {
                    var self = this;
                    mediator.once('page:afterChange', function() {
                        self._showMessage(self.type, message);
                    });
                }

                if (mediator.execute('compareUrl', url)) {
                    mediator.execute('refreshPage');
                } else {
                    mediator.execute('redirectTo', {url: url});
                }
            } else if (message) {
                this._showMessage(this.type, message);
            }
        },
 }).done(function(response) {
     mediator.once('page:update', function() {
         mediator.execute('showFlashMessage', 'success', response.message);
     });
     mediator.execute('refreshPage');
 }).always(function() {
Example #10
0
        loadPage: function(forceLoad) {
            forceLoad = forceLoad || false;
            if (!this.url) {
                return;
            }

            this.beforeRequest();

            var cacheData = this.getCachedData();
            if (!forceLoad && cacheData) {
                widgetManager.resetWidgets();
                this.tempCache = cacheData;
                this.handleResponse(cacheData, {fromCache: true});
                this.afterRequest();
                return;
            }

            var pageUrl = this.baseUrl + this.url;
            var stringState = [];
            this.skipGridStateChange = false;
            if (this.encodedStateData) {
                var state = PageableCollection.prototype.decodeStateData(this.encodedStateData);
                var collection = new PageableCollection({}, {inputName: state.gridName});

                stringState = collection.processQueryParams({}, state);
                stringState = collection.processFiltersParams(stringState, state);

                mediator.once(
                    "datagrid_filters:rendered",
                    function (collection) {
                        collection.trigger('updateState', collection);
                    },
                    this
                );

                this.skipGridStateChange = true;
            }

            var useCache = this.useCache;
            $.ajax({
                url: pageUrl,
                headers: this.headerObject,
                data: stringState,
                beforeSend: function( xhr ) {
                    $.isActive(false);
                    //remove standard ajax header because we already have a custom header sent
                    xhr.setRequestHeader('X-Requested-With', {toString: function(){ return ''; }});
                },

                error: _.bind(this.processError, this),

                success: _.bind(function (data, textStatus, jqXHR) {
                    this.handleResponse(data);
                    this.updateDebugToolbar(jqXHR);
                    this.afterRequest();
                    if (useCache) {
                        contentManager.addPage(this.getHashUrl(), this.tempCache);
                    }
                }, this)
            });
        },