CAController.js 14.8 KB
AIA.controller("CAController", ["$scope", "$window", "$rootScope", "$compile", "$http", "$log", "$location", "pages", "BodyRegions", "BodySystems", "MedicalSpecialties", "DataService",
function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, BodyRegions, BodySystems, MedicalSpecialties, DataService) {
    $rootScope.currentActiveModuleTitle = pages[4].name;
    $scope.showme = true;
    $scope.AnimationData;
    $scope.CAAllBodyRegion = [];
    $scope.CAAllBodySystem = [];
    $scope.CAAllSpeciality = [];
    $scope.selectedCAlistViewData = [];
    $scope.searchCAlistViewData = [];
    $scope.SelectedCAthumbImage = [];
    $scope.SelectedCAImage = [];
    $scope.SelectedCASummary = [];
    $scope.filterstring = false;

    $scope.$on('$viewContentLoaded', function (event) {
        // code that will be executed ... 
        // every time this view is loaded

        $scope.CAAllBodyRegion = BodyRegions;
        $scope.CAAllBodySystem = BodySystems;
        $scope.CAAllSpeciality = MedicalSpecialties;
        $scope.scroll();

    });

    var promise = DataService.getJson('~/../content/data/json/ca/ca_dat_contentlist.json')
    promise.then(
              function (result) {
                  $scope.AnimationData = result;
                  $scope.selectedCAlistViewData = $scope.AnimationData.root.CAData;

                  $('#grid-view').empty();

                  angular.forEach($scope.selectedCAlistViewData, function (value, key) {
                      $scope.imagePath = "~/../content/images/ca/thumbnails/" + value._ThumbnailImage;


                      var $el = $('<div id=' + value._id + '  class="col-sm-3 col-md-2" title = "' + value._Title + '" data-ng-click="openView($event)">'
                          + '<div class="thumbnail" >'
                                     + '<img id="' + value._Title + '" class="img-responsive" style="width:100%;height:100%;" ng-src="' + $scope.imagePath + '" alt="" title="" >'
                                     + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');


                      $compile($el)($scope);

                      $(".sidebar").mCustomScrollbar({
                          autoHideScrollbar: true,
                          //theme:"rounded"
                      });

                  });

              },
              function (error) {
                  // handle errors here
                  console.log(' $scope.AnimationData = ' + error.statusText);
              }
           );

    $scope.IsVisible = function () {
        $scope.scroll();

    }

    $scope.showItem = function (id) {
        //console.log(id);
        $scope.hiderow = true;
        if ($scope.filterstring == false) {

            var SelectedCAthumbImage = [];
            SelectedCAthumbImage = new jinqJs()
                          .from($scope.selectedCAlistViewData)
                          .where('_id = ' + id)
                          .select('_ThumbnailImage', '_Summary', '_id', '_Title');

            $scope.SelectedCAthumbImage = "~/../content/images/ca/thumbnails/" + SelectedCAthumbImage[0]._ThumbnailImage;

            $scope.SelectedCASummary = SelectedCAthumbImage[0]._Summary;
            $scope.SelectedCAId = SelectedCAthumbImage[0]._id;
            $scope.SelectedCATitle = SelectedCAthumbImage[0]._Title;

        }
        else {
            if ($scope.searchCAlistViewData.length > 0) {

                var SelectedCAthumbImage = [];
                SelectedCAthumbImage = new jinqJs()
                              .from($scope.searchCAlistViewData)
                              .where('_id = ' + id)
                              .select('_ThumbnailImage', '_Summary', '_id', '_Title');

                $scope.SelectedCAthumbImage = "~/../content/images/ca/thumbnails/" + SelectedCAthumbImage[0]._ThumbnailImage;

                $scope.SelectedCASummary = SelectedCAthumbImage[0]._Summary;
                $scope.SelectedCAId = SelectedCAthumbImage[0]._id;
                $scope.SelectedCATitle = SelectedCAthumbImage[0]._Title;
            }
        }
    };

    $scope.Reset = function (query) {

        query.selectedbodyregion = "";
        query.selectedbodysystem = "";
        query.selectedspecialty = "";
        $scope.filterstring = false;
        while ($scope.searchCAlistViewData.length) {
            $scope.searchCAlistViewData.pop();
        }
        $('#grid-view').empty();

        angular.forEach($scope.selectedCAlistViewData, function (value, key) {
            $scope.imagePath = "~/../content/images/ca/thumbnails/" + value._ThumbnailImage;

            var $el = $('<div id=' + value._id + ' class="col-sm-3 col-lg-2" title = ' + value._Title + ' data-ng-click="openView($event)">'
                + '<div class="thumbnail" >'
                           + '<img id="' + value._Title + 'class="img-responsive" style="width:100%;height:100%;" "ng-src="' + $scope.imagePath + '" alt="" title="" >'
                           + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');


            $compile($el)($scope);

            $(".sidebar").mCustomScrollbar({
                autoHideScrollbar: true,
                //theme:"rounded"
            });

        });

    }

    $scope.ApplySearch = function (query) {

        $scope.filterstring = true;

        while ($scope.searchCAlistViewData.length) {
            $scope.searchCAlistViewData.pop();
        }

        $('#grid-view').empty();

        filtercount = 0;
        if (typeof (query.selectedbodyregion) !== "undefined" && query.selectedbodyregion !== null) {
            filtercount = filtercount + 1;
        }
        if (typeof (query.selectedbodysystem) !== "undefined" && query.selectedbodysystem !== null) {
            filtercount = filtercount + 1;
        }
        if (typeof (query.selectedspecialty) !== "undefined" && query.selectedspecialty !== null) {
            filtercount = filtercount + 1;
        }

        angular.forEach($scope.selectedCAlistViewData, function (value, key) {

            var selectimg = true;
            var count = 0;


            if (typeof (query.selectedbodyregion) !== "undefined" && query.selectedbodyregion !== null) {
                var posbodyregion = value._BodyRegion.indexOf((query.selectedbodyregion.trim()));
                if (posbodyregion > -1) {
                    selectimg = true;
                    count = count + 1;

                }
                else {
                    selectimg = false;
                    count = count - 1;
                }

            }

            if (typeof (query.selectedbodysystem) !== "undefined" && query.selectedbodysystem !== null) {
                var posbodysystem = value._BodySystem.indexOf(query.selectedbodysystem);
                if (posbodysystem > -1) {
                    count = count + 1;
                    selectimg = true;
                } else {
                    selectimg = false;
                    count = count - 1;
                }
            }

            if (typeof (query.selectedspecialty) !== "undefined" && query.selectedspecialty !== null) {
                var posspeciality = value._MedicalSpecialty.indexOf(query.selectedspecialty);
                if (posspeciality > -1) {
                    count = count + 1;
                    selectimg = true;
                } else {
                    selectimg = false;
                    count = count - 1;
                }

            }

            if (selectimg === true && count >= filtercount) {


                $scope.imagePath = "~/../content/images/ca/thumbnails/" + value._ThumbnailImage;

                var $el = $('<div id=' + value._id + ' class="col-sm-3 col-lg-2" title = ' + value._Title + ' data-ng-click="openView($event)">'
                    + '<div class="thumbnail" >'
                               + '<img id="' + value._Title + 'class="img-responsive" style="width:100%;height:100%;" "ng-src="' + $scope.imagePath + '" alt="" title="" >'
                               + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');


                $compile($el)($scope);

                $(".sidebar").mCustomScrollbar({
                    autoHideScrollbar: true,
                    //theme:"rounded"
                });


                $scope.searchCAlistViewData.push(
                               {
                                   "_id": value._id,
                                   "_ImageId": value._ImageId,
                                   "_Title": value._Title,
                                   "_Video": value._Video,
                                   "_ThumbnailImage": value._ThumbnailImage,
                                   "_BodySystem": value._BodySystem,
                                   "_BodyRegion": value._BodyRegion,
                                   "_MedicalSpecialty": value._MedicalSpecialty,
                                   "_Summary": value._Summary,
                                   "_LowerSummary": value._LowerSummary
                               });

            }


        });
    }




    $scope.scroll = function () {
        $("html,body").scrollTop(0);
    }



    $scope.openView = function ($event) {

        $rootScope.currentBodyViewId = $event.currentTarget.id;
        if ($event.currentTarget.textContent !== null && typeof ($event.currentTarget.textContent) !== "undefined") {
            var CITitle = [];
            CITitle = new jinqJs()
                          .from($scope.selectedCAlistViewData)
                          .where('_id = ' + $event.currentTarget.id)
                          .select('_Title');

            //console.log(CITitle);
            //console.log($scope.selectedCAlistViewData);

            $rootScope.ViewTitle = CITitle[0]._Title;
        }
        else {
            $rootScope.ViewTitle = $event.currentTarget.textContent;

        }


        localStorage.setItem("currentViewTitleFromJson", $rootScope.ViewTitle);
        localStorage.setItem("currentBodyViewId", $event.currentTarget.id);

        var u = $location.url();
        $location.url('/clinical-animations-detail');

        //console.log($location.url('/clinical-animations-detail'));

    }

    $scope.openBodyView = function () {

        $rootScope.isLoading = true;
        $('#spinner').css('visibility', 'visible');
        $scope.voId = localStorage.getItem("currentBodyViewId");

        // alert($scope.voId);


        //once you get id in scope push detail in jspanel content

        var openViews;
        if ($rootScope.openViews.length > 0) {
            openViews = new jinqJs()
               .from($rootScope.openViews)
               .where("BodyViewId==" + $scope.voId)
               .select();
        }
        var counter = 1;
        var tittle = localStorage.getItem("currentViewTitleFromJson");

        if (openViews != null && openViews.length > 0) {
            angular.forEach(openViews, function (value, key) {

                if (value.body - views == tittle) {
                    tittle = localStorage.getItem("currentViewTitleFromJson") + counter++;
                    $rootScope.currentActiveViewTitle = tittle;
                    localStorage.setItem("currentViewTitle", tittle);
                }

            });
        }
        else {
            localStorage.setItem("currentViewTitle", tittle);

        }

        //alert(localStorage.getItem("currentViewTitle"));

        var promise = DataService.getJson('~/../content/data/json/ca/ca_dat_contentlist_mp4link.json')
        promise.then(
                  function (result) {
                      $scope.AnimationData = result;
                      $scope.CAlistViewData = $scope.AnimationData.root.CAData;

                            var clickedCAVideo = [];
                            clickedCAVideo = new jinqJs()
                                            .from($scope.CAlistViewData)
                                            .where('_id == ' + $scope.voId)
                                            .select('_Video','_LowerSummary');

                            $scope.clickedCAVideo = clickedCAVideo[0]._Video;
                            $scope.clickedCASummary = clickedCAVideo[0]._LowerSummary

                            if ($scope.clickedCAVideo.length > 0 && $scope.clickedCASummary.length > 0) {

                          $rootScope.isLoading = false;
                          $('#spinner').css('visibility', 'hidden');

                          $.jsPanel({
                              id: 'caVideoPanel',
                              selector: '.caView',
                              theme: 'success',
                              currentController: 'CAController',
                              parentSlug: 'clinical-animations',
                              content: '<div class="row"><div  class="col-sm-12" align="center"><video style="height:80%;" controls>' +
                                  '<source loop autoplay controls="true" src="' + $scope.clickedCAVideo + '" type="video/mp4" />Your browser does not support HTML5 video.</video><div class="col-sm-12 well">' +
                              '<div id="sid" align="left" style="height:40px;overflow-y:scroll !important"><p>' + $scope.clickedCASummary + '</p></div><button class="btn btn-primary pull-right">Text Off</button>' +
                              '<script>$(document).ready(function(){$("button").click(function(){$("#sid").toggle();if($.trim($(this).text()) === "Text Off"){$(this).text("Text On");}else{$(this).text("Text Off");}});});</script></div></div>',

                              //ajax: {
                              //    url: 'app/views/ca/ca-view-detail.html'
                              //},
                              title: localStorage.getItem("currentViewTitle"),
                              position: {
                                  top: 70,
                                  left: 1,
                              },
                              
                              size: { width: $(window).outerWidth() - 10, height: $(window).outerHeight()},

                          });

                          $rootScope.currentSlug = 'clinical-animations-detail';

                          $rootScope.openViews.push(
                         {
                             "module": $rootScope.currentActiveModuleTitle, "body-views": tittle, "state": 'max', "BodyViewId": $rootScope.currentBodyViewId,
                             "slug": $rootScope.currentSlug
                         });

                     }


                  },
                  function (error) {
                      // handle errors here
                      console.log(' $scope.AnimationData = ' + error.statusText);
                  }

               );

        //console.log($rootScope.openViews);
        $('#CAView').css("height", $(window).outerHeight());

        $('#CAView').css("width", $(window).outerWidth());

    }


}]


);