Overview

Packages

  • application
    • commands
    • components
      • actions
      • filters
      • leftWidget
      • permissions
      • sortableWidget
      • util
      • webupdater
      • x2flow
        • actions
        • triggers
      • X2GridView
      • X2Settings
    • controllers
    • models
      • embedded
    • modules
      • accounts
        • controllers
        • models
      • actions
        • controllers
        • models
      • calendar
        • controllers
        • models
      • charts
        • models
      • contacts
        • controllers
        • models
      • docs
        • components
        • controllers
        • models
      • groups
        • controllers
        • models
      • marketing
        • components
        • controllers
        • models
      • media
        • controllers
        • models
      • mobile
        • components
      • opportunities
        • controllers
        • models
      • products
        • controllers
        • models
      • quotes
        • controllers
        • models
      • services
        • controllers
        • models
      • template
        • models
      • users
        • controllers
        • models
      • workflow
        • controllers
        • models
      • x2Leads
        • controllers
        • models
  • None
  • system
    • base
    • caching
    • console
    • db
      • ar
      • schema
    • validators
    • web
      • actions
      • auth
      • helpers
      • widgets
        • captcha
        • pagers
  • zii
    • widgets
      • grid

Classes

  • AccountsGridViewProfileWidget
  • ActionMenu
  • ActionsGridViewProfileWidget
  • ActionsQuickCreateRelationshipBehavior
  • ActiveDateRangeInput
  • ApplicationConfigBehavior
  • Attachments
  • ChatBox
  • CommonControllerBehavior
  • ContactMapInlineTags
  • ContactsGridViewProfileWidget
  • CronForm
  • CSaveRelationsBehavior
  • DateRangeInputsWidget
  • DocsGridViewProfileWidget
  • DocViewer
  • DocViewerProfileWidget
  • EButtonColumnWithClearFilters
  • EmailDeliveryBehavior
  • EmailProgressControl
  • EncryptedFieldsBehavior
  • EventsChartProfileWidget
  • FileUploader
  • FontPickerInput
  • Formatter
  • FormView
  • GridViewWidget
  • History
  • IframeWidget
  • ImportExportBehavior
  • InlineActionForm
  • InlineEmailAction
  • InlineEmailForm
  • InlineEmailModelBehavior
  • InlineQuotes
  • JSONEmbeddedModelFieldsBehavior
  • JSONFieldsDefaultValuesBehavior
  • LeadRoutingBehavior
  • LeftWidget
  • LoginThemeHelper
  • LoginThemeHelperBase
  • MarketingGridViewProfileWidget
  • MediaBox
  • MessageBox
  • MobileFormatter
  • MobileFormLayoutRenderer
  • MobileLayoutRenderer
  • MobileLoginThemeHelper
  • MobileViewLayoutRenderer
  • ModelFileUploader
  • NewWebLeadsGridViewProfileWidget
  • NormalizedJSONFieldsBehavior
  • NoteBox
  • OnlineUsers
  • OpportunitiesGridViewProfileWidget
  • Panel
  • ProfileDashboardManager
  • ProfileGridViewWidget
  • ProfileLayoutEditor
  • ProfilesGridViewProfileWidget
  • Publisher
  • PublisherActionTab
  • PublisherCalendarEventTab
  • PublisherCallTab
  • PublisherCommentTab
  • PublisherEventTab
  • PublisherSmallCalendarEventTab
  • PublisherTab
  • PublisherTimeTab
  • QuickContact
  • QuickCreateRelationshipBehavior
  • QuotesGridViewProfileWidget
  • RecordAliasesWidget
  • RecordViewLayoutManager
  • RecordViewWidgetManager
  • RememberPagination
  • Reminders
  • ResponseBehavior
  • ResponsiveHtml
  • SearchIndexBehavior
  • ServicesGridViewProfileWidget
  • SmallCalendar
  • SmartActiveDataProvider
  • SmartDataProviderBehavior
  • SmartSort
  • SocialForm
  • SortableWidgetManager
  • SortableWidgets
  • TagBehavior
  • TagCloud
  • TemplatesGridViewProfileWidget
  • TimeZone
  • TopContacts
  • TopSites
  • TransformedFieldStorageBehavior
  • TranslationLogger
  • TwitterFeed
  • TwoColumnSortableWidgetManager
  • UpdaterBehavior
  • UpdatesForm
  • UserIdentity
  • UsersChartProfileWidget
  • WorkflowBehavior
  • X2ActiveGridView
  • X2ActiveGridViewForSortableWidgets
  • X2AssetManager
  • X2AuthManager
  • X2ChangeLogBehavior
  • X2ClientScript
  • X2Color
  • X2DateUtil
  • X2FixtureManager
  • X2FlowFormatter
  • X2GridView
  • X2GridViewBase
  • X2GridViewForSortableWidgets
  • X2GridViewSortableWidgetsBehavior
  • X2LeadsGridViewProfileWidget
  • X2LinkableBehavior
  • X2ListView
  • X2PillBox
  • X2ProgressBar
  • X2SmartSearchModelBehavior
  • X2TimestampBehavior
  • X2TranslationBehavior
  • X2UrlRule
  • X2WebModule
  • X2Widget
  • X2WidgetList
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /*****************************************************************************************
  3:  * X2Engine Open Source Edition is a customer relationship management program developed by
  4:  * X2Engine, Inc. Copyright (C) 2011-2016 X2Engine Inc.
  5:  * 
  6:  * This program is free software; you can redistribute it and/or modify it under
  7:  * the terms of the GNU Affero General Public License version 3 as published by the
  8:  * Free Software Foundation with the addition of the following permission added
  9:  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
 10:  * IN WHICH THE COPYRIGHT IS OWNED BY X2ENGINE, X2ENGINE DISCLAIMS THE WARRANTY
 11:  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
 12:  * 
 13:  * This program is distributed in the hope that it will be useful, but WITHOUT
 14:  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 15:  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
 16:  * details.
 17:  * 
 18:  * You should have received a copy of the GNU Affero General Public License along with
 19:  * this program; if not, see http://www.gnu.org/licenses or write to the Free
 20:  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 21:  * 02110-1301 USA.
 22:  * 
 23:  * You can contact X2Engine, Inc. P.O. Box 66752, Scotts Valley,
 24:  * California 95067, USA. or at email address contact@x2engine.com.
 25:  * 
 26:  * The interactive user interfaces in modified source and object code versions
 27:  * of this program must display Appropriate Legal Notices, as required under
 28:  * Section 5 of the GNU Affero General Public License version 3.
 29:  * 
 30:  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
 31:  * these Appropriate Legal Notices must retain the display of the "Powered by
 32:  * X2Engine" logo. If the display of the logo is not reasonably feasible for
 33:  * technical reasons, the Appropriate Legal Notices must display the words
 34:  * "Powered by X2Engine".
 35:  *****************************************************************************************/
 36: 
 37: class RecordViewWidgetManager extends TwoColumnSortableWidgetManager {
 38: 
 39:     public $layoutManager;
 40: 
 41:     /**
 42:      * @var CActiveRecord $model
 43:      */
 44:     public $model; 
 45: 
 46:     /**
 47:      * @var string $JSClass
 48:      */
 49:     public $JSClass = 'RecordViewWidgetManager'; 
 50: 
 51:     public $namespace = 'RecordViewWidgetManager';
 52: 
 53:     public $widgetType = 'recordView';
 54: 
 55:     /**
 56:      * @var array (<widget name> => <array of parameters to pass to widget) 
 57:      */
 58:     public $widgetParamsByWidgetName = array ();
 59: 
 60:     /**
 61:      * Magic getter. Returns this widget's packages. 
 62:      */
 63:     public function getPackages () {
 64:         if (!isset ($this->_packages)) {
 65:             $this->_packages = array_merge (parent::getPackages (), array (
 66:                 'RecordViewWidgetManagerJS' => array(
 67:                     'baseUrl' => Yii::app()->request->baseUrl,
 68:                     'js' => array(
 69:                         'js/sortableWidgets/RecordViewWidgetManager.js',
 70:                     ),
 71:                     'depends' => array ('TwoColumnSortableWidgetManagerJS')
 72:                 ),
 73:             ));
 74:         }
 75:         return $this->_packages;
 76:     }
 77: 
 78:     protected function getTranslations () {
 79:         if (!isset ($this->_translations )) {
 80:             $this->_translations = array_merge (parent::getTranslations (), array (
 81:                 'Create' => Yii::t('app', 'Create'),
 82:                 'Cancel' => Yii::t('app', 'Cancel'),
 83:             ));
 84:         }
 85:         return $this->_translations;
 86:     }
 87: 
 88:     public function getJSClassParams () {
 89:         if (!isset ($this->_JSClassParams)) {
 90:             $this->_JSClassParams = array_merge (parent::getJSClassParams (), array (
 91:                 'connectedContainerSelector' => '.'.$this->connectedContainerClass,
 92:                 'setSortOrderUrl' => 
 93:                     Yii::app()->controller->createUrl ('/profile/setWidgetOrder'),
 94:                 'showWidgetContentsUrl' => Yii::app()->controller->createUrl (
 95:                     '/profile/view', array ('id' => 1)),
 96:                 'modelId' => $this->model->id,
 97:                 'modelType' => get_class ($this->model),
 98:                 'cssSelectorPrefix' => $this->namespace,
 99:                 'widgetType' => $this->widgetType
100:             ));
101:         }
102:         return $this->_JSClassParams;
103:     }
104: 
105:     public function displayWidgets ($containerNumber){
106:         $widgetLayoutName = $this->widgetLayoutName;
107:         $layout = 
108:             Yii::app()->params->profile->$widgetLayoutName;
109: 
110:         foreach ($layout as $widgetClass => $settings) {
111:             if (self::isExcluded ($widgetClass, get_class ($this->model))) continue;
112: 
113:             if ($settings['containerNumber'] == $containerNumber) {
114: 
115:                 if (isset ($this->widgetParamsByWidgetName[$widgetClass])) {
116:                     $options = $this->widgetParamsByWidgetName[$widgetClass];
117:                 } else {
118:                     $options = array ();
119:                 }
120:                 $options = array_merge (array (
121:                     'model' => $this->model,
122:                     'widgetManager' => $this,
123:                 ), $options);
124:                 SortableWidget::instantiateWidget (
125:                     $widgetClass, Yii::app()->params->profile, $this->widgetType, $options);
126:             }
127:         }
128:     }
129: 
130:     /**
131:      * @param bool $onReady whether or not JS class should be instantiated after page is ready
132:      */
133:     public function instantiateJSClass ($onReady=true) {
134:         Yii::app()->clientScript->registerScript (
135:             $this->namespace.get_class ($this).'JSClassInstantiation', 
136:             ($onReady ? "$(function () {" : "").
137:                 $this->getJSObjectName ()."=
138:                     x2.".lcfirst ($this->JSClass)."= new x2.$this->JSClass (".
139:                         CJSON::encode ($this->getJSClassParams ()).
140:                     ");".
141:             ($onReady ? "});" : ""), CClientScript::POS_END);
142:     }
143: 
144: 
145:     public static function isExcluded ($name, $modelType) {
146:         if ($modelType === 'Topics' && 
147:             !in_array ($name, array ('InlineTagsWidget', 'InlineRelationshipsWidget')) ||
148:             ($modelType === 'Docs' ||
149:             $modelType === 'Media' && (in_array ($name, array (
150:                 'InlineTagsWidget',
151:                 'WorkflowStageDetailsWidget',
152:                 'ActionHistoryChartWidget',
153:                  
154:                 'EmailsWidget',
155:                 'QuotesWidget',
156:             )))) ||
157:             $modelType === 'Actions' && $name !== 'InlineTagsWidget' ||
158:             $modelType !== 'Campaign' && $name === 'CampaignChartWidget' ||
159:             ($modelType == 'BugReports' && $name!='WorkflowStageDetailsWidget') ||
160:             ($modelType == 'Quote' && in_array ($name, array (
161:                 'WorkflowStageDetailsWidget',
162:                 'QuotesWidget',
163:             ))) ||
164:             ($modelType == 'Opportunity' && in_array ($name, array (
165:                 'EmailsWidget',
166:             ))) ||
167:             ($modelType == 'Campaign' && in_array ($name, array (
168:                 'WorkflowStageDetailsWidget', 
169:                 'InlineRelationshipsWidget',
170:                 'EmailsWidget',
171:                 'QuotesWidget',
172:             ))) ||
173:             ($modelType === 'Product' && in_array ($name, array (
174:                 'WorkflowStageDetailsWidget',
175:                 'QuotesWidget',
176:                 'EmailsWidget',
177:             )))) {
178: 
179:             return true;
180:         } else {
181:             return false;
182:         }
183:     }
184: 
185: 
186: }
187: 
188: ?>
189: 
X2CRM Documentation API documentation generated by ApiGen 2.8.0