123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- define([
- 'jquery',
- 'q',
- 'bi/sharecommon/utils/translator',
- 'bi/commons/ui/View'
- ], function($, Q, t, View) {
- 'use strict';
- var pdfOptionsView = View.extend({
- init: function(options) {
- pdfOptionsView.inherited('init', this, arguments);
- this._initVariables();
- $.extend(this, options);
- },
- render: function() {
- var deferred = Q.defer();
- this._setEvents();
- deferred.resolve();
- return deferred.promise;
- },
- getOptions: function() {
- return this.pdfOptions;
- },
-
- _setEvents: function() {
- var _self = this;
- this.$toggler.on('clicktap', function() {
-
- _self._closeOpenSiblings().then(function() {
- var content = {
- 'module': 'bi/content_apps/PdfOptionsView',
- 'glassContext': _self.glassContext,
- 'closeCallback': _self._setPdfOptions.bind(_self),
-
- 'pdfOptions': $.map(_self.pdfOptions, function(value, key) {
- return [{
- name: key,
- value: value
- }];
- })
- };
- _self.slideout = _self.glassContext.appController.showSlideOut({
- 'parent': _self.parentSlideout,
- 'position': _self.parentSlideout.position,
- 'width': '350',
- 'label': t.translate('schedule_pdf_options_name'),
- 'content': content
- });
- }).done();
- });
- },
- _setPdfOptions: function(options) {
- if (!options) {
- return;
- }
- var updatedPdfOptions = {};
- options.forEach(function(option) {
- var value = option.value;
- if ((option.name).indexOf('Password') !== -1 && option.value.length) {
- var xmlDoc = $.parseXML(option.value);
- var $pwd = $(xmlDoc).find('password');
- if ($pwd.text().length) {
- value = $pwd.text();
- }
- }
- if (value !== undefined || value !== null) {
- updatedPdfOptions[option.name] = value;
- }
- }.bind(this));
- this.pdfOptions = updatedPdfOptions;
- },
- _initVariables: function() {
- this.glassContext = {};
- this.$toggler = {};
- this.parentSlideout = {};
- this.slideout = null;
- this.pdfOptions = {};
- this.updatedPdfOptions = {};
- },
-
- _closeOpenSiblings: function() {
- var deferred = Q.defer();
-
- if(this.slideout && this.slideout.open) {
- this.slideout.hide().then(function() {
- deferred.resolve();
- }).done();
- } else {
- deferred.resolve();
- }
- return deferred.promise;
- }
-
- });
- return pdfOptionsView;
- });
|