protected function getDynamicContent()
 {
     $detailsOverlayView = new MarketingListDetailsOverlayView($this->controllerId, $this->moduleId, $this->params['model']);
     return $detailsOverlayView->render();
 }
 public function renderMenuItem()
 {
     $detailsOverlayView = new MarketingListDetailsOverlayView($this->controllerId, $this->moduleId, $this->params['model']);
     return array('label' => $this->getLabel(), 'url' => $this->getRoute(), 'itemOptions' => array('class' => 'hasDetailsFlyout'), 'items' => array(array('label' => '', 'dynamicLabelContent' => $detailsOverlayView->render())));
 }
    protected function registerScriptsForDynamicMemberCountUpdate()
    {
        // Begin Not Coding Standard
        $scriptName = $this->uniquePageId . '_dynamicMemberCountUpdate';
        if (Yii::app()->clientScript->isScriptRegistered($scriptName)) {
            return;
        } else {
            Yii::app()->clientScript->registerScript($scriptName, '
                    function updateMemberStats(newCount, oldContent, elementClass)
                    {
                        countStrippedOldContent = oldContent.substr(oldContent.indexOf(" "));
                        $(elementClass).html(newCount + countStrippedOldContent);
                    }

                    function triggerMemberStatsUpdate()
                    {
                        var modelId                 = "' . $this->getModelId() . '";
                        var subscriberCountClass    = ".' . MarketingListDetailsOverlayView::SUBSCRIBERS_STATS_CLASS . '";
                        var unsubscriberCountClass  = ".' . MarketingListDetailsOverlayView::UNSUBSCRIBERS_STATS_CLASS . '";
                        var subscriberHtml          = $(subscriberCountClass).html();
                        var unsubscriberHtml        = $(unsubscriberCountClass).html();
                        var url                     = "' . MarketingListDetailsOverlayView::getMemberCountUpdateUrl() . '";
                        $.ajax(
                                {
                                    url:        url,
                                    dataType:   "json",
                                    data:       { marketingListId: modelId },
                                    success:    function(data, status, request) {
                                                    updateMemberStats(data.subscriberCount, subscriberHtml, subscriberCountClass);
                                                    updateMemberStats(data.unsubscriberCount, unsubscriberHtml, unsubscriberCountClass);
                                                },
                                    error:      function(request, status, error) {
                                                    // TODO: @Shoaibi/@Jason: Low: What should we do here?
                                                },
                                }
                            );
                        }
                    ');
            // End Not Coding Standard
        }
    }