Commit facaa56171b97f9c696aa9a0fb55ac0cfd33e49e

Authored by unknown
2 parents 0168f33a 77497b23

COMMIT AFTER MERGE AND CONTAINS CODE CHANGE FOR SAVE TEXT IN ANNOTATION

.gitignore
1   -# git ignore file
2   -[Bb]in/
3   -[Dd]ebug*/
4   -*.lib
5   -Thumbs.db
6   -obj/
7   -*.obj
8   -*.exe
9   -*.pdb
10   -*.user
11   -*.aps
12   -*.pch
13   -*.vspscc
14   -*_i.c
15   -*_p.c
16   -*.ncb
17   -*.suo
18   -*.sln.docstates
19   -*.tlb
20   -*.tlh
21   -*.bak
22   -*.cache
23   -*.ilk
24   -*.log
25   -[Bb]in
26   -[Dd]ebug*/
27   -*.lib
28   -*.sbr
29   -obj/
30   -[Rr]elease*/
31   -_ReSharper*/
32   -[Tt]est[Rr]esult*
33   -*.vssscc
34   -$tf*/
35   -400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj.user
  1 +# git ignore file
  2 +[Bb]in/
  3 +[Dd]ebug*/
  4 +*.lib
  5 +Thumbs.db
  6 +obj/
  7 +*.obj
  8 +*.exe
  9 +*.pdb
  10 +*.user
  11 +*.aps
  12 +*.pch
  13 +*.vspscc
  14 +*_i.c
  15 +*_p.c
  16 +*.ncb
  17 +*.suo
  18 +*.sln.docstates
  19 +*.tlb
  20 +*.tlh
  21 +*.bak
  22 +*.cache
  23 +*.ilk
  24 +*.log
  25 +[Bb]in
  26 +[Dd]ebug*/
  27 +*.lib
  28 +*.sbr
  29 +obj/
  30 +[Rr]elease*/
  31 +_ReSharper*/
  32 +[Tt]est[Rr]esult*
  33 +*.vssscc
  34 +$tf*/
  35 +400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj.user
36 36 300-PROTOTYPES/POC/AIAHTML5
37 37 400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js.orig
38 38 400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js.orig
... ...
400-SOURCECODE/AIAHTML5.Web/Web.config
... ... @@ -17,6 +17,9 @@
17 17 <compilation debug="true" targetFramework="4.5" />
18 18 <httpRuntime targetFramework="4.5" />
19 19 </system.web>
  20 + <location path="app/views">
  21 +
  22 +</location>
20 23 <system.webServer>
21 24 <rewrite>
22 25 <rules>
... ... @@ -27,13 +30,14 @@
27 30 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
28 31 <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
29 32 </conditions>
30   - <action type="Rewrite" url="/AIA/" />
  33 + <action type="Rewrite" url="/" />
31 34 </rule>
32 35 </rules>
33 36 </rewrite>
34 37 <staticContent>
  38 +
35 39 <remove fileExtension=".mp3" />
36   - <clientCache cacheControlMode="DisableCache" />
  40 + <!--<clientCache cacheControlMode="DisableCache" />-->
37 41 <remove fileExtension=".woff" />
38 42 <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
39 43 <mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/CAController.js
... ... @@ -6,12 +6,17 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
6 6 $scope.CAAllBodyRegion = [];
7 7 $scope.CAAllBodySystem = [];
8 8 $scope.CAAllSpeciality = [];
9   - $scope.selectedCAlistViewData = [];
10   - $scope.searchCAlistViewData = [];
  9 + $scope.selectedCAListViewData = [];
  10 + $scope.searchCAListViewData = [];
11 11 $scope.SelectedCAthumbImage = [];
12 12 $scope.SelectedCAImage = [];
13 13 $scope.SelectedCASummary = [];
14 14 $scope.filterstring = false;
  15 + $scope.query = {
  16 + selectedbodyregion: null,
  17 + selectedbodysystem: null,
  18 + selectedspecialty: null,
  19 + };
15 20  
16 21 $scope.$on('$viewContentLoaded', function (event) {
17 22 // code that will be executed ...
... ... @@ -28,15 +33,22 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
28 33 promise.then(
29 34 function (result) {
30 35 $scope.AnimationData = result;
31   - $scope.selectedCAlistViewData = $scope.AnimationData.root.CAData;
  36 + //$scope.selectedCAListViewData = $scope.AnimationData.root.CAData;
  37 +
  38 + $scope.selectedCAListViewData = new jinqJs()
  39 + .from($scope.AnimationData.root.CAData)
  40 + .orderBy([{ field: '_Title', sort: 'asc' }])
  41 + .select();
  42 +
  43 + //console.log($scope.selectedCAListViewData);
32 44  
33 45 $('#grid-view').empty();
34 46  
35   - angular.forEach($scope.selectedCAlistViewData, function (value, key) {
  47 + angular.forEach($scope.selectedCAListViewData, function (value, key) {
36 48 $scope.imagePath = "~/../content/images/ca/thumbnails/" + value._ThumbnailImage;
37 49  
38 50  
39   - var $el = $('<div id=' + value._id + ' class="col-sm-3 col-md-2" title = "' + value._Title + '" data-ng-click="openView($event)">'
  51 + var $el = $('<div id="' + value._id + '" class="col-sm-3 col-md-2" title = "' + value._Title + '" data-ng-click="openView($event)">'
40 52 + '<div class="thumbnail" >'
41 53 + '<img id="' + value._Title + '" class="img-responsive" style="width:100%;height:100%;" ng-src="' + $scope.imagePath + '" alt="" title="" >'
42 54 + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');
... ... @@ -70,7 +82,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
70 82  
71 83 var SelectedCAthumbImage = [];
72 84 SelectedCAthumbImage = new jinqJs()
73   - .from($scope.selectedCAlistViewData)
  85 + .from($scope.selectedCAListViewData)
74 86 .where('_id = ' + id)
75 87 .select('_ThumbnailImage', '_Summary', '_id', '_Title');
76 88  
... ... @@ -82,11 +94,11 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
82 94  
83 95 }
84 96 else {
85   - if ($scope.searchCAlistViewData.length > 0) {
  97 + if ($scope.searchCAListViewData.length > 0) {
86 98  
87 99 var SelectedCAthumbImage = [];
88 100 SelectedCAthumbImage = new jinqJs()
89   - .from($scope.searchCAlistViewData)
  101 + .from($scope.searchCAListViewData)
90 102 .where('_id = ' + id)
91 103 .select('_ThumbnailImage', '_Summary', '_id', '_Title');
92 104  
... ... @@ -101,22 +113,22 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
101 113  
102 114 $scope.Reset = function (query) {
103 115  
104   - query.selectedbodyregion = "";
105   - query.selectedbodysystem = "";
106   - query.selectedspecialty = "";
  116 + query.selectedbodyregion = null;
  117 + query.selectedbodysystem = null;
  118 + query.selectedspecialty = null;
107 119 $scope.filterstring = false;
108   - while ($scope.searchCAlistViewData.length) {
109   - $scope.searchCAlistViewData.pop();
  120 + while ($scope.searchCAListViewData.length) {
  121 + $scope.searchCAListViewData.pop();
110 122 }
111 123 $('#grid-view').empty();
112 124  
113   - angular.forEach($scope.selectedCAlistViewData, function (value, key) {
  125 + angular.forEach($scope.selectedCAListViewData, function (value, key) {
114 126 $scope.imagePath = "~/../content/images/ca/thumbnails/" + value._ThumbnailImage;
115 127  
116   - var $el = $('<div id=' + value._id + ' class="col-sm-3 col-lg-2" title = ' + value._Title + ' data-ng-click="openView($event)">'
117   - + '<div class="thumbnail" >'
118   - + '<img id="' + value._Title + 'class="img-responsive" style="width:100%;height:100%;" "ng-src="' + $scope.imagePath + '" alt="" title="" >'
119   - + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');
  128 + var $el = $('<div id="' + value._id + '" class="col-sm-3 col-md-2" title = "' + value._Title + '" data-ng-click="openView($event)">'
  129 + + '<div class="thumbnail" >'
  130 + + '<img id="' + value._Title + '" class="img-responsive" style="width:100%;height:100%;" ng-src="' + $scope.imagePath + '" alt="" title="" >'
  131 + + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');
120 132  
121 133  
122 134 $compile($el)($scope);
... ... @@ -130,12 +142,13 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
130 142  
131 143 }
132 144  
  145 + // for "Intracytoplasmic sperm injection (ICSI)" case, the Body region is not required so we have added "_BodyRegion": "None" which was actually not available in origincal flex file.
133 146 $scope.ApplySearch = function (query) {
134 147  
135 148 $scope.filterstring = true;
136 149  
137   - while ($scope.searchCAlistViewData.length) {
138   - $scope.searchCAlistViewData.pop();
  150 + while ($scope.searchCAListViewData.length) {
  151 + $scope.searchCAListViewData.pop();
139 152 }
140 153  
141 154 $('#grid-view').empty();
... ... @@ -151,7 +164,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
151 164 filtercount = filtercount + 1;
152 165 }
153 166  
154   - angular.forEach($scope.selectedCAlistViewData, function (value, key) {
  167 + angular.forEach($scope.selectedCAListViewData, function (value, key) {
155 168  
156 169 var selectimg = true;
157 170 var count = 0;
... ... @@ -199,10 +212,10 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
199 212  
200 213 $scope.imagePath = "~/../content/images/ca/thumbnails/" + value._ThumbnailImage;
201 214  
202   - var $el = $('<div id=' + value._id + ' class="col-sm-3 col-lg-2" title = ' + value._Title + ' data-ng-click="openView($event)">'
203   - + '<div class="thumbnail" >'
204   - + '<img id="' + value._Title + 'class="img-responsive" style="width:100%;height:100%;" "ng-src="' + $scope.imagePath + '" alt="" title="" >'
205   - + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');
  215 + var $el = $('<div id="' + value._id + '" class="col-sm-3 col-md-2" title = "' + value._Title + '" data-ng-click="openView($event)">'
  216 + + '<div class="thumbnail" >'
  217 + + '<img id="' + value._Title + '" class="img-responsive" style="width:100%;height:100%;" ng-src="' + $scope.imagePath + '" alt="" title="" >'
  218 + + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');
206 219  
207 220  
208 221 $compile($el)($scope);
... ... @@ -213,7 +226,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
213 226 });
214 227  
215 228  
216   - $scope.searchCAlistViewData.push(
  229 + $scope.searchCAListViewData.push(
217 230 {
218 231 "_id": value._id,
219 232 "_ImageId": value._ImageId,
... ... @@ -231,6 +244,13 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
231 244  
232 245  
233 246 });
  247 +
  248 + //Show Error Message in case of gridview if no data is found
  249 + if ($scope.searchCAListViewData.length == 0) {
  250 +
  251 + var $el = $('<div class="col-sm-12" style="padding-left:25px;padding-top:10px;"><strong style="color:white;">No animation found for the selected search criteria!</strong></div>').appendTo('#grid-view');
  252 + $compile($el)($scope);
  253 + }
234 254 }
235 255  
236 256  
... ... @@ -248,12 +268,12 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, pages, B
248 268 if ($event.currentTarget.textContent !== null && typeof ($event.currentTarget.textContent) !== "undefined") {
249 269 var CITitle = [];
250 270 CITitle = new jinqJs()
251   - .from($scope.selectedCAlistViewData)
  271 + .from($scope.selectedCAListViewData)
252 272 .where('_id = ' + $event.currentTarget.id)
253 273 .select('_Title');
254 274  
255 275 //console.log(CITitle);
256   - //console.log($scope.selectedCAlistViewData);
  276 + //console.log($scope.selectedCAListViewData);
257 277  
258 278 $rootScope.ViewTitle = CITitle[0]._Title;
259 279 }
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/CIController.js
... ... @@ -8,14 +8,21 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
8 8 $scope.CIAllOrientation = [];
9 9 $scope.CIAllImageType = [];
10 10 $scope.CIAllSpeciality = [];
11   - $scope.searchCIlistViewData = [];
  11 + $scope.searchCIListViewData = [];
12 12 $scope.SelectedCIthumbImage = [];
13 13 $scope.SelectedCIImage = [];
14 14 $scope.SelectedCISummary = [];
15 15 $scope.SelectedCIId = [];
16 16 $scope.SelectedCITitle = [];
17   - $scope.selectedCIlistViewData = [];
  17 + $scope.selectedCIListViewData = [];
18 18 $scope.filterstring = false;
  19 + $scope.query = {
  20 + selectedbodyregion: null,
  21 + selectedbodysystem: null,
  22 + selectedorientation: null,
  23 + selectedimagetype: null,
  24 + selectedspecialty: null,
  25 + };
19 26  
20 27 $scope.$on('$viewContentLoaded', function (event) {
21 28 // code that will be executed ...
... ... @@ -36,14 +43,19 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
36 43 promise.then(
37 44 function (result) {
38 45 $scope.IllustrationData = result;
39   - $scope.selectedCIlistViewData = $scope.IllustrationData.root.CIData;
  46 + //$scope.selectedCIListViewData = $scope.IllustrationData.root.CIData;
  47 +
  48 + $scope.selectedCIListViewData = new jinqJs()
  49 + .from($scope.IllustrationData.root.CIData)
  50 + .orderBy([{ field: '_Title', sort: 'asc' }])
  51 + .select();
40 52  
41 53 $('#grid-view').empty();
42 54  
43   - angular.forEach($scope.selectedCIlistViewData, function (value, key) {
  55 + angular.forEach($scope.selectedCIListViewData, function (value, key) {
44 56 $scope.imagePath = "~/../content/images/ci/thumbnails/" + value._ThumbnailImage;
45 57  
46   - var $el = $('<div id=' + value._id + ' class="col-sm-3 col-md-2" title = ' + value._Title + ' data-ng-click="openView($event)">'
  58 + var $el = $('<div id="' + value._id + '" class="col-sm-3 col-md-2" title = "' + value._Title + '" data-ng-click="openView($event)">'
47 59 + '<div class="thumbnail" >'
48 60 + '<img id="' + value._Title + '"ng-src="' + $scope.imagePath + '" alt="" title="" >'
49 61 + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');
... ... @@ -77,7 +89,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
77 89  
78 90 var SelectedCIthumbImage = [];
79 91 SelectedCIthumbImage = new jinqJs()
80   - .from($scope.selectedCIlistViewData)
  92 + .from($scope.selectedCIListViewData)
81 93 .where('_id = ' + id)
82 94 .select('_ThumbnailImage', '_Summary', '_id', '_Title');
83 95  
... ... @@ -88,11 +100,11 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
88 100  
89 101 }
90 102 else {
91   - if ($scope.searchCIlistViewData.length > 0) {
  103 + if ($scope.searchCIListViewData.length > 0) {
92 104  
93 105 var SelectedCIthumbImage = [];
94 106 SelectedCIthumbImage = new jinqJs()
95   - .from($scope.searchCIlistViewData)
  107 + .from($scope.searchCIListViewData)
96 108 .where('_id = ' + id)
97 109 .select('_ThumbnailImage', '_Summary', '_id', '_Title');
98 110  
... ... @@ -107,21 +119,27 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
107 119  
108 120 $scope.Reset = function (query) {
109 121  
110   - query.selectedbodyregion = "";
111   - query.selectedbodysystem = "";
112   - query.selectedorientation = "";
113   - query.selectedimagetype = "";
114   - query.selectedspecialty = "";
  122 + //query.selectedbodyregion = "";
  123 + //query.selectedbodysystem = "";
  124 + //query.selectedorientation = "";
  125 + //query.selectedimagetype = "";
  126 + //query.selectedspecialty = "";
  127 + query.selectedbodyregion = null;
  128 + query.selectedbodysystem = null;
  129 + query.selectedorientation = null;
  130 + query.selectedimagetype = null;
  131 + query.selectedspecialty = null;
  132 +
115 133 $scope.filterstring = false;
116   - while ($scope.searchCIlistViewData.length) {
117   - $scope.searchCIlistViewData.pop();
  134 + while ($scope.searchCIListViewData.length) {
  135 + $scope.searchCIListViewData.pop();
118 136 }
119 137 $('#grid-view').empty();
120 138  
121   - angular.forEach($scope.selectedCIlistViewData, function (value, key) {
  139 + angular.forEach($scope.selectedCIListViewData, function (value, key) {
122 140 $scope.imagePath = "~/../content/images/ci/thumbnails/" + value._ThumbnailImage;
123 141  
124   - var $el = $('<div id=' + value._id + ' class="col-sm-3 col-lg-2" title = ' + value._Title + ' data-ng-click="openView($event)">'
  142 + var $el = $('<div id="' + value._id + '" class="col-sm-3 col-md-2" title = "' + value._Title + '" data-ng-click="openView($event)">'
125 143 + '<div class="thumbnail" >'
126 144 + '<img id="' + value._Title + '"ng-src="' + $scope.imagePath + '" alt="" title="" >'
127 145 + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');
... ... @@ -142,8 +160,8 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
142 160  
143 161 $scope.filterstring = true;
144 162  
145   - while ($scope.searchCIlistViewData.length) {
146   - $scope.searchCIlistViewData.pop();
  163 + while ($scope.searchCIListViewData.length) {
  164 + $scope.searchCIListViewData.pop();
147 165 }
148 166  
149 167 $('#grid-view').empty();
... ... @@ -165,7 +183,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
165 183 filtercount = filtercount + 1;
166 184 }
167 185  
168   - angular.forEach($scope.selectedCIlistViewData, function (value, key) {
  186 + angular.forEach($scope.selectedCIListViewData, function (value, key) {
169 187  
170 188 var selectimg = true;
171 189 var count = 0;
... ... @@ -239,7 +257,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
239 257  
240 258 $scope.imagePath = "~/../content/images/ci/thumbnails/" + value._ThumbnailImage;
241 259  
242   - var $el = $('<div id=' + value._id + ' class="col-sm-3 col-lg-2" title = ' + value._Title + ' data-ng-click="openView($event)">'
  260 + var $el = $('<div id="' + value._id + '" class="col-sm-3 col-md-2" title = "' + value._Title + '" data-ng-click="openView($event)">'
243 261 + '<div class="thumbnail" >'
244 262 + '<img id="' + value._Title + '"ng-src="' + $scope.imagePath + '" alt="" title="" >'
245 263 + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');
... ... @@ -253,7 +271,7 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
253 271 });
254 272  
255 273  
256   - $scope.searchCIlistViewData.push(
  274 + $scope.searchCIListViewData.push(
257 275 {
258 276 "_id": value._id,
259 277 "_ImageId": value._ImageId,
... ... @@ -273,6 +291,13 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
273 291  
274 292  
275 293 });
  294 +
  295 + //Show Error Message in case of gridview if no data is found
  296 + if ($scope.searchCIListViewData.length == 0) {
  297 +
  298 + var $el = $('<div class="col-sm-12" style="padding-left:25px;padding-top:10px;"><strong style="color:white">No illustration found for the selected search criteria!</strong></div>').appendTo('#grid-view');
  299 + $compile($el)($scope);
  300 + }
276 301 }
277 302  
278 303  
... ... @@ -290,12 +315,12 @@ function ($scope, $window, $rootScope, $compile, $http, log, $location, $timeout
290 315 if ($event.currentTarget.textContent !== null && typeof ($event.currentTarget.textContent) !== "undefined") {
291 316 var CITitle = [];
292 317 CITitle = new jinqJs()
293   - .from($scope.selectedCIlistViewData)
  318 + .from($scope.selectedCIListViewData)
294 319 .where('_id = ' + $event.currentTarget.id)
295 320 .select('_Title');
296 321  
297 322 // console.log(CITitle);
298   - // console.log($scope.selectedCIlistViewData);
  323 + // console.log($scope.selectedCIListViewData);
299 324  
300 325 $rootScope.ViewTitle = CITitle[0]._Title;
301 326 }
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js
... ... @@ -11,7 +11,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
11 11 $scope.imagePath = "";
12 12 $rootScope.BodyRegionData;
13 13 $rootScope.BodyRegionCordinatesData;
14   - $scope.isTransparencyActivated;
  14 + $scope.isTransparencyActivated = false;
15 15 $rootScope.BodyLayerData;
16 16 $rootScope.VocabTermData;
17 17  
... ... @@ -84,7 +84,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
84 84 $rootScope.updatedWhiteImageMRDataList = [];
85 85  
86 86 //normal mode
87   - $rootScope.isNormalMode = false;
  87 + $rootScope.isNormalMode = true;
88 88 $rootScope.isZoomed = false;
89 89  
90 90 //navigator man functionality
... ... @@ -165,7 +165,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
165 165 //get the DA body view list based on selected gender
166 166 $scope.getDAViewList = function ($event) {
167 167  
168   -
  168 +
169 169 if ($('#MainImage') != null) {
170 170 $('#MainImage').remove();
171 171 }
... ... @@ -244,7 +244,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
244 244 }
245 245  
246 246 $scope.imagePath = "~/../content/images/DA/" + $scope.zoomInOut + "/body-views/" + value._id + '/skintone/' + userEthnicity + '/' + thumbnailImage;
247   -
  247 +
248 248  
249 249 var $el = $('<div id=' + value._id + ' class="col-sm-3 col-lg-2" title = ' + value._title + ' data-ng-click="openView($event)"><div class="thumbnail" >'
250 250 + '<img class= "daImg" id="' + value._title + '" src="' + $scope.imagePath + '" alt="" title="" >'
... ... @@ -265,7 +265,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
265 265  
266 266  
267 267 $scope.openView = function ($event) {
268   -
  268 +
269 269 $rootScope.isLoading = true;
270 270 $('#spinner').css('visibility', 'visible');
271 271  
... ... @@ -422,6 +422,9 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
422 422 //0.1
423 423 var currentBodyViewId = localStorage.getItem("currentBodyViewId");
424 424  
  425 + $scope.loadSearchDataForBodyView();
  426 +
  427 +
425 428 console.log('currentBodyViewId pickjed from localStorage: ' + currentBodyViewId);
426 429  
427 430 var openViews;
... ... @@ -499,7 +502,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
499 502 //1. load navigator man first
500 503 $scope.LoadBodyViewNavigatorImage();
501 504  
502   - $scope.loadSearchDataForBodyView();
  505 + //$scope.loadSearchDataForBodyView();
503 506  
504 507 $scope.currentTitleFromJson = localStorage.getItem("currentViewTitle");
505 508  
... ... @@ -525,7 +528,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
525 528  
526 529  
527 530 $scope.loadSearchDataForBodyView = function () {
528   -
  531 +
529 532 console.log('loadSearchDataForBodyView');
530 533  
531 534 var currentBodyViewId = localStorage.getItem("currentBodyViewId");
... ... @@ -682,7 +685,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
682 685  
683 686  
684 687 $scope.LoadDefaultLayerImage = function () {
685   -
  688 +
686 689 $rootScope.isNormalMode = true;
687 690  
688 691 $scope.layerNumber = 0;
... ... @@ -724,6 +727,15 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
724 727 //calculate coordinates for body region images
725 728 $scope.CalculateImageCordinates = function (viewOrientationId) {
726 729  
  730 + // annotation toolbar canvas
  731 + if ($("#canvasDiv").find("canvas[id='canvasPaint']").length == 0) {
  732 +
  733 + $("#canvasDiv").append('<canvas id="canvasPaint" width="2277" height="3248" class="canvas-annotationStyle1"></canvas><canvas id="canvas" width="2277" height="3248" class="canvas-annotationStyle"></canvas>');
  734 + $scope.BindCanvasDrawingListners();
  735 + // $rootScope.FreeStylePaint();
  736 +
  737 + }
  738 +
727 739 $scope.terminateCurrentlyRunningWPs();
728 740  
729 741 var drawnBodyRegionCount = [];
... ... @@ -945,7 +957,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
945 957 //set scrollbars on canvas and hide loading label
946 958 $('#daLoaderLabel').css('visibility', 'hidden')
947 959  
948   -
  960 +
949 961 $('#canvasDiv').css('overflow', 'scroll')
950 962 if (isiOSSafari) {
951 963 $('#canvasDiv').scrollLeft($('#canvasDiv').width() + 150)
... ... @@ -954,7 +966,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
954 966 else {
955 967 $('#canvasDiv').scrollLeft($('#canvasDiv').width() / 2)
956 968 }
957   -
  969 +
958 970  
959 971 // $('#canvasDiv').scrollLeft($scope.imageHorizontlScrollPosition)
960 972 $('#canvasDiv').scrollTop(50)
... ... @@ -966,40 +978,44 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
966 978 //Dated:16-07-2016 Issue #4957 :While selecting the Zoom-in\Zoom-out button scroll should be go on top.
967 979 // #4976 :While changing gender male to female scroll bar is going on top.
968 980 var canvasDiv = document.getElementById('canvasDiv');
969   - canvasDiv.scrollTop = 0;
  981 + if (canvasDiv != null || canvasDiv != undefined) {
  982 + canvasDiv.scrollTop = 0;
970 983  
971   - //Navigator Code for dynamically calculating the height and width of Dragable Div on Navigator Image
972 984  
973   - var dragdivh = Math.floor(($('#canvasDiv').height() / $('#canvasDiv')[0].scrollHeight) * 119) //119px is the height of the image
  985 + //Navigator Code for dynamically calculating the height and width of Dragable Div on Navigator Image
974 986  
975   - if ($('#canvasDiv')[0].scrollWidth > $('#canvasDiv')[0].clientWidth) {
  987 + var dragdivh = Math.floor(($('#canvasDiv').height() / $('#canvasDiv')[0].scrollHeight) * 119) //119px is the height of the image
976 988  
977   - var dragdivw = 42
978   - $scope.dragdivleft = 21;
979   - $scope.dragdivtop = 0;
  989 + if ($('#canvasDiv')[0].scrollWidth > $('#canvasDiv')[0].clientWidth) {
980 990  
981   - $scope.dragdivposition = {
982   - "left": 21,
983   - "top": 0
984   - };
985   - }
986   - else {
987   - var dragdivw = 83;
  991 + var dragdivw = 42
  992 + $scope.dragdivleft = 21;
  993 + $scope.dragdivtop = 0;
988 994  
989   - $scope.dragdivleft = 0;
990   - $scope.dragdivtop = 0;
  995 + $scope.dragdivposition = {
  996 + "left": 21,
  997 + "top": 0
  998 + };
  999 + }
  1000 + else {
  1001 + var dragdivw = 83;
991 1002  
992   - $scope.dragdivposition = {
993   - "left": 0,
994   - "top": 0
  1003 + $scope.dragdivleft = 0;
  1004 + $scope.dragdivtop = 0;
995 1005  
996   - };
  1006 + $scope.dragdivposition = {
  1007 + "left": 0,
  1008 + "top": 0
  1009 +
  1010 + };
  1011 + }
997 1012 }
998 1013  
999   -
  1014 +
1000 1015  
1001 1016 $('#draggable').css('width', dragdivw);
1002 1017 $('#draggable').css('height', dragdivh)
  1018 +
1003 1019 }
1004 1020  
1005 1021 function scaleRectangle(x, y, height, width, mirrorValue) {
... ... @@ -1059,7 +1075,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1059 1075  
1060 1076  
1061 1077 $scope.GetImageSource = function (bodyRegionId) {
1062   -
  1078 +
1063 1079 var dataLength = $rootScope.BodyLayerData.Layers.DataLayer.length;
1064 1080  
1065 1081 //set max for LayerNumber input
... ... @@ -1077,7 +1093,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1077 1093  
1078 1094 $scope.userInput = parseInt($scope.layerNumber);
1079 1095  
1080   -
  1096 +
1081 1097 $scope.skinTone = $rootScope.globalSetting.ethnicity;
1082 1098  
1083 1099 var SelectedLayerData = [];
... ... @@ -1139,7 +1155,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1139 1155 }
1140 1156  
1141 1157 $scope.GetBackgroundImgSource = function (bodyRegionId) {
1142   -
  1158 +
1143 1159  
1144 1160 var selectedGender;
1145 1161 if (localStorage.getItem("genderId") == "Male") {
... ... @@ -1157,7 +1173,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1157 1173 if ($scope.bagartBodyRegionDetails != null || $scope.bagartBodyRegionDetails != undefined) {
1158 1174  
1159 1175 //filter bodyRegion data basd on skintone
1160   - $scope.skinTone = $rootScope.globalSetting.ethnicity
  1176 + $scope.skinTone = $rootScope.globalSetting.ethnicity
1161 1177 $scope.bagartDetailsOnSktn = new jinqJs()
1162 1178 .from($scope.bagartBodyRegionDetails)
1163 1179 .where('_Skintone == ' + $scope.skinTone)
... ... @@ -1193,11 +1209,13 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1193 1209 FlipedImgCanvas.style.left = x + "px";
1194 1210 FlipedImgCanvas.style.top = y + "px";
1195 1211  
1196   -
  1212 +
1197 1213  
1198 1214 if (isMaskImage == 'Y') {
  1215 +
1199 1216 FlipedImgCanvas.id = 'imageCanvas' + bodyRegionId + '_MR_mci';
1200   - FlipedImgCanvas.style.visibility = 'hidden'
  1217 + FlipedImgCanvas.style.visibility = 'hidden';
  1218 +
1201 1219  
1202 1220 }
1203 1221 else {
... ... @@ -1218,6 +1236,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1218 1236  
1219 1237 FlipedImgCanvas.addEventListener('click', function (evt) {
1220 1238  
  1239 +
1221 1240 //to get correct data on multihighlight highlight
1222 1241 if ($scope.isLayerChange == true) {
1223 1242 $scope.isLayerChange = false;
... ... @@ -1294,6 +1313,9 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1294 1313 }
1295 1314 var RGBColor = (Red + Green + Blue);
1296 1315  
  1316 + $rootScope.previousHighlightList.push(RGBColor);
  1317 +
  1318 +
1297 1319 if ($rootScope.isHighLight) {
1298 1320  
1299 1321 if ($scope.machedIcolorInBodyRegion != null || $scope.machedIcolorInBodyRegion != undefined) {
... ... @@ -1331,15 +1353,21 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1331 1353 }
1332 1354 }
1333 1355  
1334   - $rootScope.previousHighlightList.push(RGBColor);
  1356 + // $rootScope.previousHighlightList.push(RGBColor);
1335 1357  
1336 1358 $scope.highLightBodyBasedOnIcolor(RGBColor);
1337 1359 }
1338 1360  
1339   - if ($rootScope.isNormalMode == true) {
  1361 + //if ($rootScope.isNormalMode == true) {
  1362 +
1340 1363  
  1364 + // $rootScope.previousHighlightList.push(RGBColor);
  1365 + //}
1341 1366  
1342   - $rootScope.previousHighlightList.push(RGBColor);
  1367 + //extarct clicked body part is extarct button is already enabled.
  1368 + // debugger;
  1369 + if ($rootScope.isExtract == true) {
  1370 + $scope.enableExtract(false);
1343 1371 }
1344 1372  
1345 1373 var annotationText = $scope.GetAnnotationText(parseInt(RGBColor));
... ... @@ -1417,22 +1445,22 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1417 1445 context.scale(-1, 1);
1418 1446 context.drawImage(img, 0, 0);
1419 1447 context.restore();
  1448 +
  1449 +
  1450 + if (isMaskImage == 'N') {
1420 1451  
1421 1452  
1422   - if (isMaskImage == 'N') {
  1453 + $scope.ColoredImageSRC.push(
  1454 + {
  1455 + "bodyRegionId": bodyRegionId, "SRC": src,
  1456 + "Height": h,
  1457 + "Width": w,
  1458 + "x": x,
  1459 + "y": y,
  1460 + "haveMirror": 'true'
  1461 + }
  1462 + );
1423 1463  
1424   -
1425   - $scope.ColoredImageSRC.push(
1426   - {
1427   - "bodyRegionId": bodyRegionId, "SRC": src,
1428   - "Height": h,
1429   - "Width": w,
1430   - "x": x,
1431   - "y": y,
1432   - "haveMirror": 'true'
1433   - }
1434   - );
1435   -
1436 1464  
1437 1465 // console.log('$rootScope.isListManagerSelected= ' + $rootScope.isListManagerSelected + ' length= ' + $scope.ColoredImageSRC.length)
1438 1466  
... ... @@ -1455,9 +1483,8 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1455 1483 $scope.isEligibleForHighlight = false;
1456 1484 }
1457 1485  
1458   - if ($scope.isEligibleForHighlight == true)
1459   - {
1460   - if ($rootScope.isHighLight == true || ($rootScope.isListManagerSelected == true) || (($rootScope.isGenderChnage == true) && ($rootScope.isHighLight == true)) || (($rootScope.isViewChange == true) && ($rootScope.isHighLight == true))) {
  1486 + if ($scope.isEligibleForHighlight == true) {
  1487 + if ($rootScope.isHighLight == true || ($rootScope.isListManagerSelected == true) || (($rootScope.isGenderChnage == true) && ($rootScope.isHighLight == true)) || (($rootScope.isViewChange == true) && ($rootScope.isHighLight == true)) || $scope.isExtract == true || $rootScope.isHighlightBodyByBodySystem == true) {
1461 1488  
1462 1489 $rootScope.isLoading = true;
1463 1490 $('#spinner').css('visibility', 'visible');
... ... @@ -1489,9 +1516,12 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1489 1516 );
1490 1517 }
1491 1518 };
1492   -
  1519 +
  1520 +
1493 1521 if (document.getElementById('canvasDiv') != null)
1494 1522 document.getElementById('canvasDiv').appendChild(FlipedImgCanvas);
  1523 +
  1524 +
1495 1525  
1496 1526  
1497 1527  
... ... @@ -1619,6 +1649,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1619 1649  
1620 1650 }
1621 1651  
  1652 + $rootScope.previousHighlightList.push(RGBColor);
1622 1653  
1623 1654 if ($rootScope.isHighLight == true) {
1624 1655 if ($scope.machedIcolorInBodyRegion != null || $scope.machedIcolorInBodyRegion != undefined) {
... ... @@ -1657,7 +1688,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1657 1688 }
1658 1689 }
1659 1690  
1660   - $rootScope.previousHighlightList.push(RGBColor);
  1691 + // $rootScope.previousHighlightList.push(RGBColor);
1661 1692  
1662 1693  
1663 1694 if (maskCanvasId.match('modestyImg') && RGBColor != '000000') { }
... ... @@ -1668,8 +1699,14 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1668 1699  
1669 1700 }
1670 1701  
1671   - if ($rootScope.isNormalMode == true) {
1672   - $rootScope.previousHighlightList.push(RGBColor);
  1702 + //if ($rootScope.isNormalMode == true) {
  1703 + // $rootScope.previousHighlightList.push(RGBColor);
  1704 + //}
  1705 +
  1706 + // debugger;
  1707 + //extarct clisked body part is extarct button is already enabled.
  1708 + if ($rootScope.isExtract == true) {
  1709 + $scope.enableExtract(false);
1673 1710 }
1674 1711  
1675 1712 if ($('#speechBubbleTrns').length > 0)
... ... @@ -1733,30 +1770,32 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1733 1770  
1734 1771 img.src = src;
1735 1772  
1736   -
  1773 +
1737 1774  
1738 1775 function start() {
1739   - //debugger;
  1776 +
1740 1777 context.drawImage(img, 0, 0);
1741 1778  
  1779 +
  1780 +
1742 1781 if (isMaskImage == 'N') {
1743 1782 if (bodyRegionId == 'modestyImg3' || bodyRegionId == 'modestyImg2') {
1744 1783 //do nothing
1745 1784 }
1746 1785 else {
1747   -
1748   - $scope.ColoredImageSRC.push(
1749   - {
1750   - "bodyRegionId": bodyRegionId, "SRC": src,
1751   - "Height": h,
1752   - "Width": w,
1753   - "x": x,
1754   - "y": y,
1755   - "haveMirror": 'false'
1756   - }
1757   -
1758   - );
1759   -
  1786 +
  1787 + $scope.ColoredImageSRC.push(
  1788 + {
  1789 + "bodyRegionId": bodyRegionId, "SRC": src,
  1790 + "Height": h,
  1791 + "Width": w,
  1792 + "x": x,
  1793 + "y": y,
  1794 + "haveMirror": 'false'
  1795 + }
  1796 +
  1797 + );
  1798 +
1760 1799  
1761 1800 if (($scope.ColoredImageSRC != null || $scope.ColoredImageSRC != undefined)) {
1762 1801  
... ... @@ -1776,15 +1815,14 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1776 1815 $scope.isEligibleForHighlight = false;
1777 1816 }
1778 1817  
1779   - if ($scope.isEligibleForHighlight == true)
1780   - {
1781   -
1782   - if ($rootScope.isHighLight == true || ($rootScope.isListManagerSelected == true) || (($rootScope.isGenderChnage == true) && ($rootScope.isHighLight == true)) || (($rootScope.isViewChange == true) && ($rootScope.isHighLight == true))) {
  1818 + if ($scope.isEligibleForHighlight == true) {
  1819 +
  1820 + if ($rootScope.isHighLight == true || ($rootScope.isListManagerSelected == true) || (($rootScope.isGenderChnage == true) && ($rootScope.isHighLight == true)) || (($rootScope.isViewChange == true) && ($rootScope.isHighLight == true)) || $scope.isExtract == true || $rootScope.isHighlightBodyByBodySystem == true) {
1783 1821  
1784 1822  
1785 1823 $rootScope.isLoading = true;
1786 1824 $('#spinner').css('visibility', 'visible');
1787   -
  1825 +
1788 1826 console.log('inside start of non flipped. $scope.ColoredImageSRC.length= ' + $scope.ColoredImageSRC.length)
1789 1827 $rootScope.isHighLight = true;
1790 1828  
... ... @@ -1793,7 +1831,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1793 1831 $scope.highLightBody();
1794 1832  
1795 1833 console.log('just after highLightBody call');
1796   -
  1834 +
1797 1835 }
1798 1836 }
1799 1837 }
... ... @@ -1844,16 +1882,16 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1844 1882  
1845 1883  
1846 1884 $scope.HighlightBodyOnExtract = function () {
  1885 + console.log(' insode HighlightBodyOnExtract. $rootScope.MaskCanvasData length= ' + $rootScope.MaskCanvasData.length + ', $rootScope.previousHighlightList.length= ' + $rootScope.previousHighlightList.length)
1847 1886  
1848   -
1849 1887 var multiTermList = [];
1850 1888 var CallBackBodyRegion = [];
1851 1889  
1852 1890 if ($rootScope.isListManagerSelected) {
1853   -
  1891 +
1854 1892 multiTermList = $scope.AllTerms;
1855   -
1856   - }
  1893 +
  1894 + }
1857 1895 else if (($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && ($rootScope.previousHighlightList.length > 0)) {
1858 1896 angular.forEach($rootScope.previousHighlightList, function (value, key) {
1859 1897  
... ... @@ -1879,7 +1917,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1879 1917  
1880 1918  
1881 1919 //terminate previous running workers to create space for new workers
1882   -
  1920 + $scope.layerNumber = $('#txtlayerNumber').val();
1883 1921 $scope.terminateCurrentlyRunningWPs();
1884 1922  
1885 1923 $timeout(function () {
... ... @@ -1967,7 +2005,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
1967 2005  
1968 2006  
1969 2007 var canvasId = (e.data.canvasId).replace('_mci', '');
1970   - //debugger;
  2008 +
1971 2009 //for (var i = 1; i <= updatedData.length; i++) {
1972 2010 var grayCanvasID = canvasId;
1973 2011  
... ... @@ -2003,7 +2041,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2003 2041  
2004 2042  
2005 2043 if ($rootScope.multiAnnotationIsON == true) {
2006   - //debugger;
  2044 +
2007 2045 if (canvasId.match('_MR'))
2008 2046 $rootScope.updatedWhiteImageMRDataList[bodyRegionId] = updatedData;
2009 2047 else
... ... @@ -2052,6 +2090,9 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2052 2090 // $rootScope.updatedGrayDataList = null;
2053 2091 // $rootScope.updatedGrayDataList = [];
2054 2092 //}
  2093 +
  2094 + $scope.layerNumber = $('#txtlayerNumber').val();
  2095 +
2055 2096 $rootScope.isLoading = true;
2056 2097 $('#spinner').css('visibility', 'visible');
2057 2098  
... ... @@ -2205,7 +2246,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2205 2246  
2206 2247 var bodyRegionId = e.data.bodyRegionId;
2207 2248 var canvasId = (e.data.canvasId).replace('_mci', '');
2208   - //debugger;
  2249 +
2209 2250 //for (var i = 1; i <= updatedData.length; i++) {
2210 2251 var grayCanvasID = canvasId;
2211 2252  
... ... @@ -2225,7 +2266,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2225 2266  
2226 2267 }
2227 2268  
2228   - //debugger;
  2269 +
2229 2270  
2230 2271 if (canvasId.match('_MR')) {
2231 2272 $rootScope.updatedGrayMRDataList[bodyRegionId] = updatedData;
... ... @@ -2257,14 +2298,14 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2257 2298 }
2258 2299  
2259 2300 if ($scope.doAligneCanvasWithTerm == true) {
2260   - //debugger;
2261   - if ($scope.isHighlightBodyByBodySystem == true || $rootScope.isListManagerSelected == true)
  2301 +
  2302 + if ($rootScope.isHighlightBodyByBodySystem == true || $rootScope.isListManagerSelected == true)
2262 2303  
2263 2304 $rootScope.isLoading = false;
2264 2305  
2265 2306 $('#spinner').css('visibility', 'hidden');
2266 2307  
2267   - $scope.isHighlightBodyByBodySystem = false;
  2308 + // $rootScope.isHighlightBodyByBodySystem = false;
2268 2309  
2269 2310 if ($rootScope.isListManagerSelected == true)
2270 2311 $scope.aligneCanvasWithTerm();
... ... @@ -2288,9 +2329,6 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2288 2329  
2289 2330 var multiTermList = [];
2290 2331 angular.forEach($rootScope.previousHighlightList, function (value, key) {
2291   -
2292   - //debugger;
2293   -
2294 2332 var ActualTermNo = $scope.getActualTermNumber(value);
2295 2333 if (ActualTermNo != null) {
2296 2334 var TermList = $scope.getTermNumberList(ActualTermNo);
... ... @@ -2351,8 +2389,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2351 2389  
2352 2390 //get annotation from term number
2353 2391 $scope.GetAnnotationText = function (termNumber) {
2354   - //debugger;
2355   -
  2392 +
2356 2393 var annotationText;
2357 2394 //0
2358 2395 var figLeafTermNo = 5868; // to do declare constant for this
... ... @@ -2387,8 +2424,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2387 2424 }
2388 2425  
2389 2426 $scope.GetAnnotationBasedOnActualTermNo = function (actualTermNo) {
2390   - // debugger;
2391   -
  2427 +
2392 2428 var Annotation;
2393 2429 $scope.ActualTermNo = actualTermNo;
2394 2430 if ($rootScope.VocabTermData != null || $rootScope.VocabTermData != undefined) {
... ... @@ -2416,10 +2452,10 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2416 2452 //layer change function
2417 2453 $scope.LayerChange = function () {
2418 2454  
2419   -
  2455 +
2420 2456 //if listanager is visisble then close it
2421   - $rootScope.isListManagerSelected = false;
2422   -
  2457 + // $rootScope.isListManagerSelected = false;
  2458 +
2423 2459 $rootScope.CloseListManager();
2424 2460  
2425 2461  
... ... @@ -2435,13 +2471,11 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2435 2471 $scope.imageVerticalScrollPosition = canvasDiv.scrollTop;
2436 2472 $scope.imageHorizontlScrollPosition = canvasDiv.scrollLeft;
2437 2473  
2438   - // debugger;
2439 2474 // $('#daLoaderLabel').css('visibility', 'visible');
2440 2475  
2441 2476  
2442   -
2443 2477 if ($scope.isTransparencyActivated) {
2444   -
  2478 +
2445 2479 //crete temp canavs to store the original data which will be used to chnange the transparency
2446 2480 if (document.getElementById('tempCanvas') != null) {
2447 2481 $('#tempCanvas').remove();
... ... @@ -2463,7 +2497,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2463 2497 if (document.getElementById('canvasDiv') != null)
2464 2498 document.getElementById('canvasDiv').appendChild(tempCanvas);
2465 2499  
2466   - // //debugger;
  2500 +
2467 2501  
2468 2502 var tCanvas = document.getElementById('transparencyCanvas');
2469 2503 var tCanvasContext = tCanvas.getContext('2d');
... ... @@ -2510,7 +2544,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2510 2544  
2511 2545 else {
2512 2546  
2513   -
  2547 +
2514 2548 //1. Dated:13-07-2016 Issue #4965 : The layer number should not extend beyond its level through layer text box.
2515 2549 var dataLength = $rootScope.BodyLayerData.Layers.DataLayer.length;
2516 2550 if (parseInt($('#txtlayerNumber').val()) > (dataLength - 1)) {
... ... @@ -2542,11 +2576,11 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2542 2576 $('#canvasDiv').scrollLeft($scope.imageHorizontlScrollPosition)
2543 2577 $('#canvasDiv').scrollTop($scope.imageVerticalScrollPosition)
2544 2578  
2545   - if ($scope.isHighlightBodyByBodySystem) {
  2579 +
  2580 + if ($rootScope.isHighlightBodyByBodySystem) {
2546 2581 $timeout(function () { $scope.DisableProgressBar() }, 20000);
2547 2582 }
2548   - else
2549   - {
  2583 + else {
2550 2584 $timeout(function () { $scope.DisableProgressBar() }, 2000);
2551 2585 }
2552 2586 }
... ... @@ -2554,9 +2588,30 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2554 2588 $('#layerChangeSlider').slider("option", "value", parseInt($rootScope.totalLayers) - parseInt($scope.layerNumber));
2555 2589 }
2556 2590  
2557   - $scope.LayerChangeOnMouseUpDown = function (e)
2558   - {
2559   -
  2591 + $scope.LayerChangeOnMouseUpDown = function (e) {
  2592 + //'x' button is displaying inside the input box in IE browser.
  2593 +
  2594 + if (e.currentTarget.id == "incrmntVal") {
  2595 +
  2596 + var layerInputVal = $("#txtlayerNumber").val();
  2597 + if (layerInputVal != $rootScope.totalLayers) {
  2598 + var layerInputValInc = parseInt(layerInputVal) + 1;
  2599 + $scope.layerNumber = parseInt(layerInputValInc);
  2600 + $("#txtlayerNumber").val($scope.layerNumber);
  2601 + }
  2602 +
  2603 + }
  2604 + else {
  2605 +
  2606 + var layerInputVal = $("#txtlayerNumber").val();
  2607 + if (layerInputVal > 0) {
  2608 + var layerInputValDec = parseInt(layerInputVal) - 1;
  2609 + $scope.layerNumber = parseInt(layerInputValDec);
  2610 + $("#txtlayerNumber").val($scope.layerNumber);
  2611 + }
  2612 +
  2613 +
  2614 + }
2560 2615 $scope.LayerChange();
2561 2616  
2562 2617 }
... ... @@ -2594,6 +2649,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2594 2649 }
2595 2650  
2596 2651 console.log('highLightBody call from DisableProgressBar')
  2652 +
2597 2653 // $scope.highLightBody();
2598 2654  
2599 2655  
... ... @@ -2633,6 +2689,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2633 2689  
2634 2690 $scope.createDynamicSpeechBubble = function (event, x, y, isAnnotationForTBox) {
2635 2691  
  2692 + //debugger;
2636 2693 if (isAnnotationForTBox == true) {
2637 2694 //1. In transparency box we shows two annotation at a time, so we need to decide the max length of annotation in btween two annotation because based on that
2638 2695 // we decide the size of speech bubble
... ... @@ -2704,8 +2761,8 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2704 2761 $(".com").css("display", "none");
2705 2762 $("#bord").css({ "width": "0px", "display": "none" });
2706 2763 var sppechBubbleDotHTML = '<div id="dot" style="position:absolute;height:15px;width:35px;display:none;z-index:10000;border-top:2px solid #000;transform:rotate(40deg);-moz-transform:rotate(40deg);-o-transform:rotate(40deg);-ms-transform:rotate(40deg);-webkit-transform:rotate(40deg);"></div>'
2707   - + '<div id="sppeachBubble" style="height:auto!important;z-index:10000;margin-left:25px;border:1px solid #000;display:none;padding:5px 10px;position:absolute;color:#000;text-align:left;font-size:12px;background-color:#fff;font-weight:bold;">'
2708   - + '<span style="position:absolute;right:-4px;top:-4px;color:#ffffff;cursor:pointer;">'
  2764 + + '<div id="sppeachBubble" style="height:auto!important;z-index:10000;margin-left:25px;border:1px solid #000;display:none;padding:5px 10px;position:absolute;color:#fff;text-align:left;font-size:12px;background-color:#19100e;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;-o-border-radius:5px;-ms-border-radius:5px;font-weight:bold;">'
  2765 + + '<span style="position:absolute;right:0px;top:0px;color:#ffffff;cursor:pointer;">'
2709 2766 + '<img class="crossDiv_temp" src=' + $rootScope.path + '></span></div>'
2710 2767  
2711 2768 + '<div style="position:absolute;border:1px solid #000;display:none;z-index:9000;" id="bord">'
... ... @@ -2846,7 +2903,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2846 2903 var Exists_annotation = $("#canvasDiv").find("div[id=" + pointClicked_annotation + "]").length;
2847 2904 // alert(Exists_annotation);
2848 2905 // alert(pointClicked_annotation);
2849   - var sppechBubbleHTML_annotation = "<div id ='" + pointClicked_annotation + "' class='com_anno'><div style='z-index:10000;position:absolute;border-top:2px solid #000;transform:rotate(40deg);-moz-transform:rotate(40deg);-o-transform:rotate(40deg);-ms-transform:rotate(40deg);-webkit-transform:rotate(40deg);height:15px;width:35px;left:" + (x - 10) + "px;top:" + (y + 10) + "px;'' id='bubble" + $scope.j + "'></div><div data=" + $scope.j + " id=" + sub_id_annotation + " class='appendDragg_annotation' style='z-index:10000;margin-left:25px;border:1px solid #000;padding:5px 10px;position:absolute;color:#000;text-align:left;font-size: 12px;background-color:#fff;font-weight:bold;left:" + x + "px;top:" + y + "px;'><div style='z-index:7000;position:absolute;right:-4px;top:-4px;color:#ffffff;cursor:pointer;'><img id=" + $scope.j + " class='dynCross_anno' src=" + $rootScope.path + "></div></div><div style='position:absolute;border:1px solid #000;display:none;z-index:9000;' id='bord_annotation" + $scope.j + "'></div></div>";
  2906 + var sppechBubbleHTML_annotation = "<div id ='" + pointClicked_annotation + "' class='com_anno'><div style='z-index:10000;position:absolute;border-top:2px solid #000;transform:rotate(40deg);-moz-transform:rotate(40deg);-o-transform:rotate(40deg);-ms-transform:rotate(40deg);-webkit-transform:rotate(40deg);height:15px;width:35px;left:" + (x - 10) + "px;top:" + (y + 10) + "px;'' id='bubble" + $scope.j + "'></div><div data=" + $scope.j + " id=" + sub_id_annotation + " class='appendDragg_annotation' style='z-index:10000;margin-left:25px;border:1px solid #000;padding:5px 10px;position:absolute;color:#fff;text-align:left;font-size: 12px;background-color:#19100e;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;-o-border-radius:5px;-ms-border-radius:5px;font-weight:bold;left:" + x + "px;top:" + y + "px;'><div style='z-index:7000;position:absolute;right:0px;top:0px;color:#ffffff;cursor:pointer;'><img id=" + $scope.j + " class='dynCross_anno' src=" + $rootScope.path + "></div></div><div style='position:absolute;border:1px solid #000;display:none;z-index:9000;' id='bord_annotation" + $scope.j + "'></div></div>";
2850 2907 if ($scope.longest_annotationT1.length > $scope.longest_annotationT2.length) {
2851 2908 if (Exists_annotation == 0) {
2852 2909 $("#canvasDiv").append(sppechBubbleHTML_annotation);
... ... @@ -2949,7 +3006,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
2949 3006 $("#" + sub_id_annotation).append("<p style='margin-bottom:2px;'>" + MultipleLang_annotation_T1 + "</p>");
2950 3007 }
2951 3008  
2952   - $("#" + sub_id_annotation).append("<p style='border-bottom:1px solid black;margin-bottom:0;'></p>");
  3009 + $("#" + sub_id_annotation).append("<p style='border-bottom:1px dotted white;margin-bottom:0;'></p>");
2953 3010  
2954 3011 for (var k = 0; k <= $scope.annotationTextArrayT2.length - 1; k++) {
2955 3012 var MultipleLang_annotation_T2 = $scope.annotationTextArrayT2[k];
... ... @@ -3072,8 +3129,8 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
3072 3129 $("#bord_annotation").css({ "width": "0px", "display": "none" });
3073 3130  
3074 3131 var sppechBubbleDotHTML_annotation = '<div id="dot_annotation" style="position:absolute;height:15px;width:35px;display:none;z-index:10000;border-top:2px solid #000;transform:rotate(40deg);-moz-transform:rotate(40deg);-o-transform:rotate(40deg);-ms-transform:rotate(40deg);-webkit-transform:rotate(40deg);"></div>'
3075   - + '<div id="sppeachBubble_annotation" style="height:auto!important;z-index:10000;margin-left:25px;border:1px solid #000;display:none;padding:5px 10px;position:absolute;color:#000;text-align:left;font-size:12px;background-color:#fff;font-weight:bold;">'
3076   - + '<span style="position:absolute;right:-4px;top:-4px;color:#ffffff;cursor:pointer;">'
  3132 + + '<div id="sppeachBubble_annotation" style="height:auto!important;z-index:10000;margin-left:25px;border:1px solid #000;display:none;padding:5px 10px;position:absolute;color:#fff;text-align:left;font-size:12px;background-color:#19100e;font-weight:bold;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;-o-border-radius:5px;-ms-border-radius:5px;font-weight:bold;">'
  3133 + + '<span style="position:absolute;right:0px;top:0px;color:#ffffff;cursor:pointer;">'
3077 3134 + '<img class="crossDiv_temp_annotation" src=' + $rootScope.path + '></span></div>'
3078 3135  
3079 3136 + '<div style="position:absolute;border:1px solid #000;display:none;z-index:9000;" id="bord_annotation">'
... ... @@ -3090,7 +3147,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
3090 3147 $("#sppeachBubble_annotation").append("<p style='margin-bottom:2px;'>" + MultipleLang_annotation_T1 + "</p>");
3091 3148 }
3092 3149  
3093   - $("#sppeachBubble_annotation").append("<p style='border-bottom:1px solid black;margin-bottom:0;'></p>");
  3150 + $("#sppeachBubble_annotation").append("<p style='border-bottom:1px dotted white;margin-bottom:0;'></p>");
3094 3151  
3095 3152 for (var k = 0; k <= $scope.annotationTextArrayT2.length - 1; k++) {
3096 3153 var MultipleLang_annotation_T2 = $scope.annotationTextArrayT2[k];
... ... @@ -3167,7 +3224,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
3167 3224 $("#sppeachBubble_annotation").append("<p style='margin-bottom:2px;'>" + MultipleLang_annotation_T1 + "</p>");
3168 3225 }
3169 3226  
3170   - $("#sppeachBubble_annotation").append("<p style='border-bottom:1px solid black;margin-bottom:0;'></p>");
  3227 + $("#sppeachBubble_annotation").append("<p style='border-bottom:1px dotted white;margin-bottom:0;'></p>");
3171 3228  
3172 3229 for (var k = 0; k <= $scope.annotationTextArrayT2.length - 1; k++) {
3173 3230 var MultipleLang_annotation_T2 = $scope.annotationTextArrayT2[k];
... ... @@ -3277,7 +3334,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
3277 3334 }
3278 3335  
3279 3336 $scope.createSpeechBubbleBasedOnAnnotationLength = function (pointClicked, x, y, id) {
3280   - var sppechBubbleHTML = "<div id ='" + pointClicked + "' class='com'><div style='z-index:10000;position:absolute;border-top:2px solid #000;transform:rotate(40deg);-moz-transform:rotate(40deg);-o-transform:rotate(40deg);-ms-transform:rotate(40deg);-webkit-transform:rotate(40deg);height:15px;width:35px;left:" + (x - 10) + "px;top:" + (y + 10) + "px;'' id='bubble" + $scope.speechBubbleCounter + "'></div><div data=" + $scope.speechBubbleCounter + " id=" + id + " class='appendDragg' style='z-index:10000;margin-left:25px;border:1px solid #000;padding:5px 10px;position:absolute;color:#000;text-align:left;font-size: 12px;background-color:#fff;font-weight:bold;left:" + x + "px;top:" + y + "px;'><div style='z-index:7000;position:absolute;right:-4px;top:-4px;color:#ffffff;cursor:pointer;'><img id=" + $scope.speechBubbleCounter + " class='dynCross' src=" + $rootScope.path + "></div></div><div style='position:absolute;border:1px solid #000;display:none;z-index:9000;' id='bord" + $scope.speechBubbleCounter + "'></div></div>";
  3337 + var sppechBubbleHTML = "<div id ='" + pointClicked + "' class='com'><div style='z-index:10000;position:absolute;border-top:2px solid #000;transform:rotate(40deg);-moz-transform:rotate(40deg);-o-transform:rotate(40deg);-ms-transform:rotate(40deg);-webkit-transform:rotate(40deg);height:15px;width:35px;left:" + (x - 10) + "px;top:" + (y + 10) + "px;'' id='bubble" + $scope.speechBubbleCounter + "'></div><div data=" + $scope.speechBubbleCounter + " id=" + id + " class='appendDragg' style='z-index:10000;margin-left:25px;border:1px solid #000;padding:5px 10px;position:absolute;color:#fff;text-align:left;font-size: 12px;font-weight:bold;background-color:#19100e;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;-o-border-radius:5px;-ms-border-radius:5px;font-weight:bold;left:" + x + "px;top:" + y + "px;'><div style='z-index:7000;position:absolute;right:0px;top:0px;color:#ffffff;cursor:pointer;'><img id=" + $scope.speechBubbleCounter + " class='dynCross' src=" + $rootScope.path + "></div></div><div style='position:absolute;border:1px solid #000;display:none;z-index:9000;' id='bord" + $scope.speechBubbleCounter + "'></div></div>";
3281 3338 //Issue #7286 :Undefined annotation should not appear
3282 3339 for (var i = 0; i <= $scope.MultiLanguageAnnationArray.length - 1; i++) {
3283 3340 var annotation = $scope.MultiLanguageAnnationArray[i];
... ... @@ -3422,31 +3479,41 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
3422 3479  
3423 3480 $scope.createTransparencyBox = function () {
3424 3481  
  3482 + $scope.isTransparencyActivated = true;
3425 3483  
3426   - //if listanager is visisble then close it
3427   -
3428   - $rootScope.isListManagerSelected = false;
3429   - $rootScope.CloseListManager();
  3484 + //do not create TBOX if in extarct mode otherwise create
  3485 + if ($rootScope.isExtract == false) {
3430 3486  
  3487 + $("#btnExtract").addClass("disabled");
3431 3488  
3432   - $scope.isTransparencyActivated = true;
3433   - // alert('transparencyClicked' + $scope.isTransparencyActivated)
3434   - $('#btnTranparency').addClass('tButtonActive');
3435   - $('#btnIdentity').removeClass(' btn-primary');
3436   - $('#btnIdentity').addClass('btn-black');
  3489 + //if listanager is visisble then close it
  3490 + $rootScope.isListManagerSelected = false;
  3491 + $rootScope.CloseListManager();
3437 3492  
3438   - var canvasDiv = document.getElementById('canvasDiv');
3439   - $scope.verticalScrollPosition = canvasDiv.scrollTop;
3440   - $scope.horizontlScrollPosition = canvasDiv.scrollLeft;
3441 3493  
3442   - var canvasDiv = document.getElementById('canvasDiv');
3443   - canvasDiv.addEventListener("mousedown", mouseDownListener);
3444 3494  
3445   - canvasDiv.addEventListener("mousemove", mouseMoveListener);
  3495 + // alert('transparencyClicked' + $scope.isTransparencyActivated)
  3496 + $('#btnTranparency').addClass('tButtonActive');
  3497 + $('#btnIdentity').removeClass(' btn-primary');
  3498 + $('#btnIdentity').addClass('btn-black');
3446 3499  
3447   - canvasDiv.addEventListener("mouseup", mouseUpListener)
  3500 + var canvasDiv = document.getElementById('canvasDiv');
  3501 + $scope.verticalScrollPosition = canvasDiv.scrollTop;
  3502 + $scope.horizontlScrollPosition = canvasDiv.scrollLeft;
3448 3503  
3449   -
  3504 + var canvasDiv = document.getElementById('canvasDiv');
  3505 + canvasDiv.addEventListener("mousedown", mouseDownListener);
  3506 +
  3507 + canvasDiv.addEventListener("mousemove", mouseMoveListener);
  3508 +
  3509 + canvasDiv.addEventListener("mouseup", mouseUpListener)
  3510 +
  3511 + }
  3512 + else {
  3513 +
  3514 + // console.log("extract button is active");
  3515 +
  3516 + }
3450 3517 }
3451 3518  
3452 3519 function mouseDownListener(e) {
... ... @@ -3554,7 +3621,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
3554 3621 $scope.TransparencyEndX = TransparencyEndX;
3555 3622 $scope.TransparencyBoxEndY = TransparencyBoxEndY;
3556 3623  
3557   -
  3624 + $scope.layerNumberBeforeTrans = parseInt($('#txtlayerNumber').val());
3558 3625  
3559 3626 //draw temp box to store the canvas data with original transparecy
3560 3627 if (document.getElementById('tempCanvas') != null) {
... ... @@ -3673,7 +3740,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
3673 3740  
3674 3741 $('#btnTranparency').addClass('tButtonActive');
3675 3742 //debugger;
3676   - $('#txtlayerNumber').val((parseInt($scope.currentLayerNumber)) + 1);
  3743 + // $('#txtlayerNumber').val((parseInt($scope.currentLayerNumber)) + 1);
3677 3744 //Dated:18-07-2016 Issue#4975: Transparency box should not be clickable if it is already selected.
3678 3745 $('#btnTranparency').removeClass('tButtonActive');
3679 3746 $('#btnTranparency').addClass('btn-black');
... ... @@ -3836,19 +3903,41 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
3836 3903 //do nothing
3837 3904 }
3838 3905 else if (isLayerChanged) {
3839   -
3840   - // alert('isMousUp on isLayerChanged');
3841 3906  
3842   - $scope.layerNumber = parseInt($('#txtlayerNumber').val());
  3907 + // alert('isMousUp on isLayerChanged');
  3908 +
  3909 + //$scope.layerNumber = parseInt($('#txtlayerNumber').val());
3843 3910  
3844 3911 }
3845 3912 else {
3846   - var currentLayer = parseInt($('#txtlayerNumber').val());
  3913 + //var currentLayer = parseInt($('#txtlayerNumber').val());
  3914 +
  3915 + //var tranparencyLayer = currentLayer + 1;
  3916 + //$scope.layerNumber = tranparencyLayer;
  3917 +
  3918 + var tranparencyLayer;
  3919 +
  3920 + //var currentLayer = parseInt($('#txtlayerNumber').val());
  3921 + var currentLayer = $scope.layerNumberBeforeTrans;
  3922 +
  3923 + if (currentLayer == $rootScope.totalLayers) {
  3924 +
  3925 + tranparencyLayer = currentLayer;
  3926 +
  3927 + }
  3928 +
  3929 + else {
  3930 +
  3931 + tranparencyLayer = currentLayer + 1;
  3932 +
  3933 + }
3847 3934  
3848   - var tranparencyLayer = currentLayer + 1;
3849 3935 $scope.layerNumber = tranparencyLayer;
  3936 +
3850 3937 }
3851 3938  
  3939 + $('#txtlayerNumber').val($scope.layerNumber);
  3940 +
3852 3941 //dedebugger;
3853 3942 //1. get the image source
3854 3943 var tranparencyImgSrc;
... ... @@ -4522,6 +4611,11 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4522 4611  
4523 4612 $scope.CloseTransparencyBox = function () {
4524 4613  
  4614 +
  4615 + //To enable extract button
  4616 + $scope.isTransparencyActivated = false;
  4617 + $("#btnExtract").removeClass("disabled");
  4618 +
4525 4619 $('.com_anno').css('display', 'none');
4526 4620  
4527 4621 $('#sppeachBubble_annotation').css('display', 'none');
... ... @@ -4556,7 +4650,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4556 4650 //var scope = angular.element(document.getElementById("DAView")).scope();
4557 4651 //scope.$apply(function () {
4558 4652 // $scope.layerNumber = 0;
4559   - $scope.isTransparencyActivated = false;
  4653 + // $scope.isTransparencyActivated = false;
4560 4654 //})
4561 4655  
4562 4656  
... ... @@ -4575,7 +4669,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4575 4669 }
4576 4670 $('#transparencyScale').css('visibility', 'hidden');
4577 4671  
4578   - $scope.isTransparencyActivated = false;
  4672 + //$scope.isTransparencyActivated = false;
4579 4673 // document.getElementById('btnTranparency').className = 't-transparency'
4580 4674 $('#btnTranparency').removeClass('tButtonActive');
4581 4675 $('#btnTranparency').addClass('btn-black');
... ... @@ -4630,18 +4724,18 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4630 4724 };
4631 4725  
4632 4726  
4633   - $scope.OnIdentityClick = function () {
  4727 + $scope.IdentityClick = function () {
4634 4728  
4635 4729  
4636 4730 //if listanager is visisble then close it
4637   -
  4731 +
4638 4732 $rootScope.isListManagerSelected = false;
4639 4733 $rootScope.CloseListManager();
4640 4734 // $('#btnIdentity').addClass('btn-primary');
4641 4735  
4642   - if ($scope.isTransparencyActivated == true) {
  4736 + if ($scope.isTransparencyActivated == true) {
4643 4737  
4644   - $scope.isTransparencyActivated = false;
  4738 + $scope.isTransparencyActivated = false;
4645 4739  
4646 4740 var canvasDiv = document.getElementById('canvasDiv');
4647 4741 canvasDiv.removeEventListener("mousedown", mouseDownListener);
... ... @@ -4657,12 +4751,17 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4657 4751  
4658 4752 $scope.enableZoom = function () {
4659 4753  
4660   -
  4754 + $("#btnExtract").removeClass("disabled");
  4755 + $("#btnTranparency").removeClass("disabled");
  4756 + $rootScope.isTransparencyBoxActivated = false;
  4757 + $rootScope.isNormalMode = false;
4661 4758 //if listanager is visisble then close it
4662 4759  
4663   - $rootScope.isListManagerSelected = false;
4664 4760 $rootScope.CloseListManager();
4665 4761  
  4762 + $rootScope.isHighlightBodyByBodySystem = false;
  4763 +
  4764 +
4666 4765 $('#sppeachBubble').css('display', 'none');
4667 4766  
4668 4767 $("#dot").css("display", "none");
... ... @@ -4677,7 +4776,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4677 4776  
4678 4777 $rootScope.isZoomed = true;
4679 4778 //1.
4680   -
  4779 +
4681 4780 $scope.flushCanvas();
4682 4781  
4683 4782 if ($scope.zoomInOut == 25) {
... ... @@ -4766,8 +4865,21 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4766 4865 // }
4767 4866 // }
4768 4867 //}
  4868 + var loopLength = 0;
  4869 + if (($rootScope.viewOrientationId == '1') || ($rootScope.viewOrientationId == '4')) {
  4870 + loopLength = 7;
  4871 + }
  4872 + else if (($rootScope.viewOrientationId == '2') || ($rootScope.viewOrientationId == '3')){
  4873 + loopLength = 5;
  4874 + }
  4875 + else if (($rootScope.viewOrientationId == '5')) {
  4876 + loopLength = 4;
  4877 + }
  4878 + else if (($rootScope.viewOrientationId == '6')) {
  4879 + loopLength = 1;
  4880 + }
4769 4881  
4770   - for (var i = 1; i < 7; i++) {
  4882 + for (var i = 1; i < loopLength; i++) {
4771 4883  
4772 4884 var id;
4773 4885 var maskId;
... ... @@ -4783,17 +4895,20 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4783 4895 if (maskcanvas != null || maskcanvas != undefined)
4784 4896 document.getElementById('canvasDiv').removeChild(maskcanvas);
4785 4897  
4786   - if (i == 4 || i == 5 || i == 6) {
4787   - id = 'imageCanvas' + i + '_MR';
4788   - maskId = 'imageCanvas' + i + '_MR_mci';
  4898 + if (loopLength == 7) {
  4899 +
  4900 + if (i == 4 || i == 5 || i == 6) {
  4901 + id = 'imageCanvas' + i + '_MR';
  4902 + maskId = 'imageCanvas' + i + '_MR_mci';
4789 4903  
4790   - var canvas = document.getElementById(id);
4791   - if (canvas != null || canvas != undefined)
4792   - document.getElementById('canvasDiv').removeChild(canvas);
  4904 + var canvas = document.getElementById(id);
  4905 + if (canvas != null || canvas != undefined)
  4906 + document.getElementById('canvasDiv').removeChild(canvas);
4793 4907  
4794   - var maskcanvas = document.getElementById(maskId);
4795   - if (maskcanvas != null || maskcanvas != undefined)
4796   - document.getElementById('canvasDiv').removeChild(maskcanvas);
  4908 + var maskcanvas = document.getElementById(maskId);
  4909 + if (maskcanvas != null || maskcanvas != undefined)
  4910 + document.getElementById('canvasDiv').removeChild(maskcanvas);
  4911 + }
4797 4912 }
4798 4913  
4799 4914 //remove modesty canavs
... ... @@ -4804,6 +4919,8 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4804 4919 }
4805 4920 }
4806 4921 }
  4922 +
  4923 +
4807 4924 }
4808 4925  
4809 4926 $scope.terminateCurrentlyRunningWPs = function () {
... ... @@ -4824,11 +4941,18 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4824 4941 $scope.enableHighlight = function () {
4825 4942  
4826 4943  
  4944 + // $("#btnExtract").removeClass("disabled");
  4945 + $("#btnTranparency").removeClass("disabled");
  4946 + // $rootScope.isTransparencyBoxActivated = false;
  4947 + // $rootScope.isNormalMode = false;
  4948 +
4827 4949 //if listanager is visisble then close it
4828 4950  
4829 4951 // $rootScope.isListManagerSelected = false;
4830 4952 $rootScope.CloseListManager();
4831 4953  
  4954 + $rootScope.isHighlightBodyByBodySystem = false;
  4955 +
4832 4956 if ($rootScope.isHighLight == true) {
4833 4957  
4834 4958 }
... ... @@ -4881,18 +5005,27 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4881 5005 $("#btnNormalMode").removeClass("btn-primary");
4882 5006 }
4883 5007  
  5008 + //7900
  5009 + $("#canvasDiv").scrollTop($rootScope.CanvasDivTopPosition);
  5010 + $("#canvasDiv").scrollLeft($rootScope.CanvasDivLeftPosition);
  5011 +
  5012 +
4884 5013 }
4885 5014  
4886 5015 $scope.enableNormalMode = function () {
4887   -
  5016 + $("#btnTranparency").removeClass("disabled");
  5017 + $rootScope.isNormalMode = false;
4888 5018 console.log('enableNormalMode is called');
4889 5019  
4890   -
  5020 +
4891 5021 // $rootScope.isHighLight = false;
4892 5022  
4893 5023 //to do should not call every time
4894 5024 $rootScope.CloseListManager();
4895   -
  5025 +
  5026 +
  5027 + $rootScope.isHighlightBodyByBodySystem = false;
  5028 +
4896 5029  
4897 5030 if ($rootScope.isNormalMode == true) {
4898 5031  
... ... @@ -4922,11 +5055,15 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4922 5055 $rootScope.isListManagerSelected = false;
4923 5056  
4924 5057 //7.
  5058 +
  5059 + $scope.layerNumber = $('#txtlayerNumber').val();
4925 5060 $scope.CalculateImageCordinates($rootScope.viewOrientationId);
4926 5061 // alert($rootScope.viewOrientationId + "gadash")
  5062 +
  5063 +
4927 5064 $("#canvasDiv").scrollTop($rootScope.CanvasDivTopPosition);
4928 5065 $("#canvasDiv").scrollLeft($rootScope.CanvasDivLeftPosition);
4929   -
  5066 +
4930 5067  
4931 5068 }
4932 5069  
... ... @@ -4953,83 +5090,130 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
4953 5090 }
4954 5091 }
4955 5092  
4956   - $scope.enableExtract = function () {
  5093 + $scope.enableExtract = function (isCalledFromButton) {
  5094 +
  5095 + console.log('isCalledFromButton= ' + isCalledFromButton);
  5096 +
  5097 + $rootScope.isHighlightBodyByBodySystem = false;
  5098 +
4957 5099  
4958 5100 $rootScope.CanvasDivTopPosition = $("#canvasDiv").scrollTop();
4959 5101  
4960 5102 $rootScope.CanvasDivLeftPosition = $("#canvasDiv").scrollLeft();
4961   - //if listanager is visisble then close it
4962 5103  
4963   - // $rootScope.isListManagerSelected = false;
4964   - $rootScope.CloseListManager();
4965   - //1.
4966   - $rootScope.isLoading = true;
4967   - $('#spinner').css('visibility', 'visible');
4968 5104  
4969   - //2.
4970   - $scope.terminateCurrentlyRunningWPs();
4971 5105  
4972   - //3.
4973   - if ($rootScope.isExtract == true) {
  5106 + if ($scope.isTransparencyActivated == true) {
  5107 +
  5108 + $("#btnExtract").addClass("disabled");
4974 5109  
4975 5110 }
  5111 +
  5112 +
4976 5113 else {
4977   - $rootScope.isExtract = true;
4978 5114  
4979 5115  
4980   - if ($rootScope.isNormalMode == true) {
  5116 + $rootScope.CloseListManager();
  5117 + //1.
  5118 + //$rootScope.isLoading = true;
  5119 + //$('#spinner').css('visibility', 'visible');
4981 5120  
4982   - $rootScope.isHighLight = false;
4983   - $rootScope.isNormalMode = false;
4984   - }
4985   - else {
4986   - $rootScope.isNormalMode = false;
4987   - $rootScope.isHighLight = false;
4988   - }
  5121 + //2.
  5122 + $scope.terminateCurrentlyRunningWPs();
4989 5123  
4990   - //4.
4991   - console.log('highLightBody from enableExtract')
4992   - $scope.highLightBody();
  5124 + //3.
  5125 + //if extarct is alraedy enabled and user cliked on any body part then extract that.
  5126 + if (isCalledFromButton == false) {
4993 5127  
  5128 + $rootScope.isExtract = true;
  5129 + //disable transparency button
4994 5130  
4995   - }
  5131 + $("#btnTranparency").addClass("disabled");
4996 5132  
4997   - //5. unhighlight other
4998   - //$scope.Normal = "";
4999   - //$scope.Extract = "LeftButtonsDefaultState";
5000   - //$scope.Highlight = "";
5001 5133  
5002   - $("#btnExtract").addClass("btn-primary");
5003   - $("#btnExtract").removeClass("btn-black");
  5134 + if ($rootScope.isNormalMode == true) {
5004 5135  
5005   - if (!$("#btnNormalMode").hasClass("btn-black")) {
5006   - $("#btnNormalMode").addClass("btn-black");
5007   - }
  5136 + $rootScope.isHighLight = false;
  5137 + $rootScope.isNormalMode = false;
  5138 + }
  5139 + else {
5008 5140  
5009   - if (!$("#btnHighLight").hasClass("btn-black")) {
5010   - $("#btnHighLight").addClass("btn-black");
5011   - }
  5141 + $rootScope.isHighLight = false;
  5142 + }
5012 5143  
5013   - if ($("#btnNormalMode").hasClass("btn-primary")) {
5014   - $("#btnNormalMode").removeClass("btn-primary");
5015   - }
  5144 + //4.
  5145 + console.log('highLightBody from enableExtract')
  5146 + $scope.highLightBody();
5016 5147  
5017   - if ($("#btnHighLight").hasClass("btn-primary")) {
5018   - $("#btnHighLight").removeClass("btn-primary");
5019   - }
5020   - }
  5148 + }
  5149 + else {
5021 5150  
5022   - $scope.enableShowHideStructureBox = function () {
  5151 + if ($rootScope.isExtract == true) {
5023 5152  
  5153 + }
  5154 + else {
  5155 + $rootScope.isExtract = true;
  5156 + //disable transparency button
5024 5157  
5025   - //if listanager is visisble then close it
  5158 + $("#btnTranparency").addClass("disabled");
5026 5159  
5027   - $rootScope.isListManagerSelected = false;
5028   - $rootScope.CloseListManager();
5029 5160  
5030   - $(".com").toggle();
5031   - $('#dot').toggle();
5032   - $('#sppeachBubble').toggle();
  5161 + if ($rootScope.isNormalMode == true) {
  5162 +
  5163 + $rootScope.isHighLight = false;
  5164 + $rootScope.isNormalMode = false;
  5165 + }
  5166 + else {
  5167 +
  5168 + $rootScope.isHighLight = false;
  5169 + }
  5170 +
  5171 + //4.
  5172 + console.log('highLightBody from enableExtract')
  5173 + $scope.highLightBody();
  5174 +
  5175 +
  5176 + }
  5177 + }
  5178 +
  5179 +
  5180 + //5. unhighlight other
  5181 + //$scope.Normal = "";
  5182 + //$scope.Extract = "LeftButtonsDefaultState";
  5183 + //$scope.Highlight = "";
  5184 +
  5185 + $("#btnExtract").addClass("btn-primary");
  5186 + $("#btnExtract").removeClass("btn-black");
  5187 +
  5188 + if (!$("#btnNormalMode").hasClass("btn-black")) {
  5189 + $("#btnNormalMode").addClass("btn-black");
  5190 + }
  5191 +
  5192 + if (!$("#btnHighLight").hasClass("btn-black")) {
  5193 + $("#btnHighLight").addClass("btn-black");
  5194 + }
  5195 +
  5196 + if ($("#btnNormalMode").hasClass("btn-primary")) {
  5197 + $("#btnNormalMode").removeClass("btn-primary");
  5198 + }
  5199 +
  5200 + if ($("#btnHighLight").hasClass("btn-primary")) {
  5201 + $("#btnHighLight").removeClass("btn-primary");
  5202 + }
  5203 + }
  5204 + }
  5205 +
  5206 + $scope.enableShowHideStructureBox = function () {
  5207 +
  5208 +
  5209 + //if listanager is visisble then close it
  5210 +
  5211 + $rootScope.isListManagerSelected = false;
  5212 + $rootScope.CloseListManager();
  5213 +
  5214 + $(".com").toggle();
  5215 + $('#dot').toggle();
  5216 + $('#sppeachBubble').toggle();
5033 5217  
5034 5218 }
5035 5219  
... ... @@ -5037,8 +5221,6 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5037 5221  
5038 5222 $scope.highLightBody = function () {
5039 5223  
5040   - $rootScope.isLoading = true;
5041   - $('#spinner').css('visibility', 'visible');
5042 5224  
5043 5225 $scope.Normal = "";
5044 5226 $scope.Extract = "";
... ... @@ -5123,194 +5305,160 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5123 5305 var colorMode;
5124 5306  
5125 5307 if ($scope.isExtract == true) {
5126   - colorMode = $scope.applyWhiteMatrix(img, context_gray);
  5308 +
  5309 + if ((($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) || $rootScope.isListManagerSelected == true) {
  5310 +
  5311 + colorMode = $scope.applyWhiteMatrix(img, context_gray);
  5312 + }
5127 5313 }
5128 5314 else {
5129 5315 colorMode = $scope.applyGrayMatrix(img, context_gray);
5130 5316 }
5131 5317  
5132   - var zeroPoint = new Point();
  5318 + console.log('colorMode inside if = ' + colorMode);
5133 5319  
5134   - DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
5135 5320  
  5321 + if (colorMode != undefined || colorMode != null) {
5136 5322  
5137   - context_gray.putImageData(DAData.data, 0, 0)
  5323 + $rootScope.isLoading = true;
  5324 + $('#spinner').css('visibility', 'visible');
5138 5325  
5139   - //NIKI- to resolve lateral arm black issue in highlight mode
5140 5326  
5141   - if ($rootScope.viewOrientationId == 5 && (value.bodyRegionId == 6 || value.bodyRegionId == 4)) {
  5327 + var zeroPoint = new Point();
5142 5328  
5143   - var imgData = context_gray.getImageData(0, 0, width, ht);
5144   - var data = imgData.data;
5145   - var c = 0;
5146   - for (var i = 0; i < data.length; i += 4) {
5147   - if (data[i] == data[i + 1] && data[i + 1] == data[i + 2] && data[i + 2] === 0) {
5148   - data[i + 3] = 0;
5149   - }
  5329 + DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
5150 5330  
5151   - }
5152   - context_gray.putImageData(imgData, 0, 0);
5153   - }
5154 5331  
5155   - //push BRID into array
5156   - $scope.grayedBR.push({ 'BRID': value.bodyRegionId });
  5332 + context_gray.putImageData(DAData.data, 0, 0)
5157 5333  
5158   - var grayImageData = context_gray.getImageData(0, 0, width, ht);
5159   - var grayImageImageDataVar = grayImageData.data;
  5334 + //NIKI- to resolve lateral arm black issue in highlight mode
5160 5335  
5161   - if ($scope.isExtract == true) {
5162   - if (value.haveMirror == 'true') {
5163   - $rootScope.whiteImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
5164   - }
5165   - else {
  5336 + if ($rootScope.viewOrientationId == 5 && (value.bodyRegionId == 6 || value.bodyRegionId == 4)) {
5166 5337  
5167   - $rootScope.whiteImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
5168   - }
5169   - }
5170   - else {
  5338 + var imgData = context_gray.getImageData(0, 0, width, ht);
  5339 + var data = imgData.data;
  5340 + var c = 0;
  5341 + for (var i = 0; i < data.length; i += 4) {
  5342 + if (data[i] == data[i + 1] && data[i + 1] == data[i + 2] && data[i + 2] === 0) {
  5343 + data[i + 3] = 0;
  5344 + }
5171 5345  
5172   - if (value.haveMirror == 'true') {
5173   - $rootScope.grayImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
  5346 + }
  5347 + context_gray.putImageData(imgData, 0, 0);
5174 5348 }
5175   - else {
5176 5349  
5177   - $rootScope.grayImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
5178   - }
5179   - }
  5350 + //push BRID into array
  5351 + $scope.grayedBR.push({ 'BRID': value.bodyRegionId });
5180 5352  
  5353 + var grayImageData = context_gray.getImageData(0, 0, width, ht);
  5354 + var grayImageImageDataVar = grayImageData.data;
5181 5355  
5182   - if ($scope.grayedBR != null || $scope.grayedBR != undefined) {
5183   - if ((($rootScope.viewOrientationId == '1') || ($rootScope.viewOrientationId == '4')) && ($scope.grayedBR.length == 9)) {
5184   - $scope.isEligibleForHighlightBodyByTermList = true;
5185   - $scope.doHighlightOrExtract = false;
5186   - }
5187   - else if ((($rootScope.viewOrientationId == '2') || ($rootScope.viewOrientationId == '3')) && ($scope.grayedBR.length == 5)) {
5188   - $scope.isEligibleForHighlightBodyByTermList = true;
5189   - $scope.doHighlightOrExtract = false;
5190   - }
5191   - else if ((($rootScope.viewOrientationId == '5')) && ($scope.grayedBR.length == 4)) {
5192   - $scope.isEligibleForHighlightBodyByTermList = true;
5193   - $scope.doHighlightOrExtract = false;
5194   - }
5195   - else if ((($rootScope.viewOrientationId == '6')) && ($scope.grayedBR.length == 1)) {
5196   - $scope.isEligibleForHighlightBodyByTermList = true;
5197   - $scope.doHighlightOrExtract = false;
  5356 + if ($scope.isExtract == true) {
  5357 + if (value.haveMirror == 'true') {
  5358 + $rootScope.whiteImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
  5359 + }
  5360 + else {
  5361 +
  5362 + $rootScope.whiteImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
  5363 + }
5198 5364 }
5199 5365 else {
5200 5366  
5201   - $scope.isEligibleForHighlightBodyByTermList = false;
  5367 + if (value.haveMirror == 'true') {
  5368 + $rootScope.grayImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
  5369 + }
  5370 + else {
  5371 +
  5372 + $rootScope.grayImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
  5373 + }
5202 5374 }
5203 5375  
5204   - if ($scope.isEligibleForHighlightBodyByTermList == true) {
5205   - //DISABLE PROGERSS BAR FOR GENDER OR VIEW CHANGE
5206   - // if ($rootScope.isGenderChnage == true || $rootScope.isViewChange == true) {
5207   - $scope.isLoading = false;
5208 5376  
5209   - $('#spinner').css('visibility', 'hidden');
5210   - //}
  5377 + if ($scope.grayedBR != null || $scope.grayedBR != undefined) {
  5378 + if ((($rootScope.viewOrientationId == '1') || ($rootScope.viewOrientationId == '4')) && ($scope.grayedBR.length == 9)) {
  5379 + $scope.isEligibleForHighlightBodyByTermList = true;
  5380 + $scope.doHighlightOrExtract = false;
  5381 + }
  5382 + else if ((($rootScope.viewOrientationId == '2') || ($rootScope.viewOrientationId == '3')) && ($scope.grayedBR.length == 5)) {
  5383 + $scope.isEligibleForHighlightBodyByTermList = true;
  5384 + $scope.doHighlightOrExtract = false;
  5385 + }
  5386 + else if ((($rootScope.viewOrientationId == '5')) && ($scope.grayedBR.length == 4)) {
  5387 + $scope.isEligibleForHighlightBodyByTermList = true;
  5388 + $scope.doHighlightOrExtract = false;
  5389 + }
  5390 + else if ((($rootScope.viewOrientationId == '6')) && ($scope.grayedBR.length == 1)) {
  5391 + $scope.isEligibleForHighlightBodyByTermList = true;
  5392 + $scope.doHighlightOrExtract = false;
  5393 + }
  5394 + else {
5211 5395  
5212   -
5213   - if (($scope.isHighlightBodyByBodySystem == true) && ($scope.systemMatchedTermList != null || $scope.systemMatchedTermList != undefined)) {
  5396 + $scope.isEligibleForHighlightBodyByTermList = false;
  5397 + }
5214 5398  
  5399 + if ($scope.isEligibleForHighlightBodyByTermList == true) {
  5400 + //DISABLE PROGERSS BAR FOR GENDER OR VIEW CHANGE
  5401 + // if ($rootScope.isGenderChnage == true || $rootScope.isViewChange == true) {
  5402 + $scope.isLoading = false;
5215 5403  
5216   - $scope.isLoading = true;
  5404 + $('#spinner').css('visibility', 'hidden');
  5405 + //}
5217 5406  
5218   - $('#spinner').css('visibility', 'visible');
5219   - $timeout(function () { $scope.HighlightBodyByTermList($scope.systemMatchedTermList) }, 100);
5220   - }
5221   - else if ($rootScope.isListManagerSelected == true) {
  5407 + if (($rootScope.isHighlightBodyByBodySystem == true) && ($scope.systemMatchedTermList != null || $scope.systemMatchedTermList != undefined)) {
5222 5408  
5223   - // console.log('$scope.grayedBR.length is ' + $scope.grayedBR.length);
5224   - $timeout(function () {
5225 5409  
5226 5410 $scope.isLoading = true;
  5411 +
5227 5412 $('#spinner').css('visibility', 'visible');
  5413 + $timeout(function () { $scope.HighlightBodyByTermList($scope.systemMatchedTermList) }, 100);
  5414 + }
  5415 + else if ($rootScope.isListManagerSelected == true) {
5228 5416  
5229   - $scope.HighlightBodyByTermList($scope.AllTerms)
5230   - }, 800);
  5417 + // console.log('$scope.grayedBR.length is ' + $scope.grayedBR.length);
  5418 + $timeout(function () {
  5419 +
  5420 + $scope.isLoading = true;
  5421 + $('#spinner').css('visibility', 'visible');
  5422 +
  5423 + $scope.HighlightBodyByTermList($scope.AllTerms)
  5424 + }, 800);
  5425 +
  5426 + }
  5427 + else if (($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) {
  5428 + $scope.createTermListByPreviousTermsAndHighlight();
  5429 + }
5231 5430  
5232   - }
5233   - else if (($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) {
5234   - $scope.createTermListByPreviousTermsAndHighlight();
5235 5431 }
5236 5432  
5237 5433 }
5238 5434  
5239 5435 }
5240 5436  
5241   - }
5242   -
5243   - $timeout(function () { imageCanvas.style.visibility = 'visible' }, 50);
  5437 + $timeout(function () { imageCanvas.style.visibility = 'visible' }, 50);
5244 5438  
  5439 + console.log('highlightboy. $rootScope.isExtract= '+$rootScope.isExtract+', $rootScope.previousHighlightList.length= ' + $rootScope.previousHighlightList.length)
  5440 + if ($rootScope.isExtract == true) {
  5441 + if (($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) {
  5442 + console.log('1. $rootScope.isExtract=true and $rootScope.previousHighlightList != null')
5245 5443  
5246   - if ($rootScope.isExtract == true) {
5247   - if (($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) {
5248   - console.log('1. $rootScope.isExtract=true and $rootScope.previousHighlightList != null')
  5444 + $timeout(function () { $scope.HighlightBodyOnExtract() }, 50);
  5445 + }
  5446 + else if ($rootScope.isListManagerSelected == true) {
  5447 + console.log('1. $rootScope.isExtract=true and $rootScope.isListManagerSelected == true')
5249 5448  
5250   - $timeout(function () { $scope.HighlightBodyOnExtract() }, 50);
5251   - }
5252   - else if ($rootScope.isListManagerSelected == true) {
5253   - console.log('1. $rootScope.isExtract=true and $rootScope.isListManagerSelected == true')
  5449 + $timeout(function () { $scope.HighlightBodyOnExtract() }, 50);
5254 5450  
5255   - $timeout(function () { $scope.HighlightBodyOnExtract() }, 50);
5256   -
  5451 + }
5257 5452 }
5258 5453 }
5259   - //else {
5260   - // // this code is for the case where user first clcik on normal mode then extract then again highlight then we need to call highlight body in gray mode
5261   - // //and then highlight the previously selected body regions at the time of normal mode.
5262   - // if ($scope.grayedBR != null || $scope.grayedBR != undefined) {
5263   - // if ((($rootScope.viewOrientationId == '1') || ($rootScope.viewOrientationId == '4')) && ($scope.grayedBR.length == 9)) {
5264   - // $scope.isEligibleForHighlightBodyByTermList = true;
5265   - // }
5266   - // else if ((($rootScope.viewOrientationId == '2') || ($rootScope.viewOrientationId == '3')) && ($scope.grayedBR.length == 5)) {
5267   - // $scope.isEligibleForHighlightBodyByTermList = true;
5268   - // }
5269   - // else if ((($rootScope.viewOrientationId == '5')) && ($scope.grayedBR.length == 4)) {
5270   - // $scope.isEligibleForHighlightBodyByTermList = true;
5271   - // }
5272   - // else if ((($rootScope.viewOrientationId == '6')) && ($scope.grayedBR.length == 1)) {
5273   - // $scope.isEligibleForHighlightBodyByTermList = true;
5274   - // }
5275   -
5276   -
5277   - // }
5278   -
5279   - // //
5280   - //}
5281 5454 })
5282 5455  
5283   - //if ($scope.isEligibleForHighlightBodyByTermList == true) {
5284   - // if (($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) {
5285   -
5286   - // var multiTermList = [];
5287   - // angular.forEach($rootScope.previousHighlightList, function (value, key) {
5288   -
5289   - // //debugger;
5290   -
5291   - // var ActualTermNo = $scope.getActualTermNumber(value);
5292   - // if (ActualTermNo != null) {
5293   - // var TermList = $scope.getTermNumberList(ActualTermNo);
5294   - // if (TermList != null) {
5295   - // for (var i = 0; i < TermList.length; i++) {
5296   -
5297   - // multiTermList.push(TermList[i]);
5298   - // }
5299   - // }
5300   - // }
5301   -
5302   - // });
5303   - // console.log('HighlightBodyByTermList call with multiTermList')
5304   -
5305   - // $timeout(function () { $scope.HighlightBodyByTermList(multiTermList) }, 80);
5306   - // }
5307   - //}
5308   -
5309 5456 }
5310 5457  
5311 5458  
5312 5459 else {
5313 5460 // This code will execute when user will select normal Mode but this time isHighlight will be false
  5461 + console.log('highlightboy ELSE. $rootScope.isExtract= ' + $rootScope.isExtract + ', $rootScope.previousHighlightList.length= ' + $rootScope.previousHighlightList.length)
5314 5462  
5315 5463 angular.forEach($scope.ColoredImageSRC, function (value, key) {
5316 5464 var id;
... ... @@ -5365,40 +5513,50 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5365 5513 var colorMode;
5366 5514  
5367 5515 if ($scope.isExtract == true) {
5368   - colorMode = $scope.applyWhiteMatrix(img, context);
  5516 + if ((($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) || $rootScope.isListManagerSelected == true) {
  5517 +
  5518 + colorMode = $scope.applyWhiteMatrix(img, context);
  5519 + }
5369 5520 }
5370 5521  
5371   - var zeroPoint = new Point();
  5522 + console.log('colorMode inside else = ' + colorMode);
  5523 + if (colorMode != undefined || colorMode != null) {
5372 5524  
5373   - DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
  5525 + $rootScope.isLoading = true;
  5526 + $('#spinner').css('visibility', 'visible');
5374 5527  
5375   - context.putImageData(DAData.data, 0, 0)
  5528 + var zeroPoint = new Point();
5376 5529  
5377   - var grayImageData = context.getImageData(0, 0, width, ht);
5378   - var grayImageImageDataVar = grayImageData.data;
  5530 + DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
5379 5531  
5380   - if ($scope.isExtract == true) {
5381   - if (value.haveMirror == 'true') {
5382   - $rootScope.whiteImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
5383   - }
5384   - else {
  5532 + context.putImageData(DAData.data, 0, 0)
5385 5533  
5386   - $rootScope.whiteImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
5387   - }
5388   - }
5389   - else {
  5534 + var grayImageData = context.getImageData(0, 0, width, ht);
  5535 + var grayImageImageDataVar = grayImageData.data;
  5536 +
  5537 + if ($scope.isExtract == true) {
  5538 + if (value.haveMirror == 'true') {
  5539 + $rootScope.whiteImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
  5540 + }
  5541 + else {
5390 5542  
5391   - if (value.haveMirror == 'true') {
5392   - $rootScope.grayImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
  5543 + $rootScope.whiteImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
  5544 + }
5393 5545 }
5394 5546 else {
5395 5547  
5396   - $rootScope.grayImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
  5548 + if (value.haveMirror == 'true') {
  5549 + $rootScope.grayImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
  5550 + }
  5551 + else {
  5552 +
  5553 + $rootScope.grayImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
  5554 + }
5397 5555 }
5398 5556 }
5399   - }
5400 5557  
5401   - $timeout(function () { imageCanvas.style.visibility = 'visible' }, 50);
  5558 + $timeout(function () { imageCanvas.style.visibility = 'visible' }, 50);
  5559 + }
5402 5560 })
5403 5561  
5404 5562 if ($rootScope.isExtract == true) {
... ... @@ -5414,7 +5572,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5414 5572 else if ($rootScope.isListManagerSelected == true) {
5415 5573 console.log('2. $rootScope.isExtract=true and $rootScope.isListManagerSelected == true')
5416 5574 $timeout(function () { $scope.HighlightBodyOnExtract() }, 50);
5417   -
  5575 +
5418 5576 }
5419 5577 }
5420 5578  
... ... @@ -5495,11 +5653,23 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5495 5653  
5496 5654 $scope.OnGenderChange = function (event) {
5497 5655  
  5656 +
  5657 +
  5658 + $("#btnExtract").removeClass("disabled");
  5659 + $("#btnTranparency").removeClass("disabled");
  5660 + $rootScope.isTransparencyBoxActivated = false;
  5661 + $rootScope.isNormalMode = false;
  5662 +
  5663 + //close transparecny box
  5664 + $scope.CloseTransparencyBox();
  5665 +
5498 5666 //if listanager is visisble then close it
5499   -
5500   - // $rootScope.isListManagerSelected = false;
  5667 +
  5668 + // $rootScope.isListManagerSelected = false;
5501 5669 $rootScope.CloseListManager();
5502 5670  
  5671 + // $rootScope.isHighlightBodyByBodySystem = false;
  5672 +
5503 5673 $rootScope.isLoading = true;
5504 5674 $('#spinner').css('visibility', 'visible');
5505 5675  
... ... @@ -5517,6 +5687,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5517 5687 localStorage.setItem("currentBodyViewId", currentBodyViewId);
5518 5688  
5519 5689 //3.
  5690 + $scope.layerNumber = 0;
5520 5691 $scope.loadSelectedBodyView(currentBodyViewId);
5521 5692  
5522 5693 //4.
... ... @@ -5544,6 +5715,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5544 5715 localStorage.setItem("currentBodyViewId", currentBodyViewId);
5545 5716  
5546 5717 //3.
  5718 + $scope.layerNumber = 0;
5547 5719 $scope.loadSelectedBodyView(currentBodyViewId);
5548 5720  
5549 5721 //4.
... ... @@ -5600,7 +5772,8 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5600 5772 //To fix issue of gray maintained in after closing jspanel after listmanager selection
5601 5773 $rootScope.isListManagerSelected = false;
5602 5774 $rootScope.isHighLight = false;
5603   - $rootScope.isNormalMode = false;
  5775 + //$rootScope.isNormalMode = false;
  5776 + $rootScope.isHighlightBodyByBodySystem = false;
5604 5777 $rootScope.CloseListManager();
5605 5778 })
5606 5779  
... ... @@ -5639,18 +5812,18 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5639 5812 canDiv.innerHTML = '';
5640 5813 }
5641 5814 //if user seelcted any term and serached before gender cnage then itshould be highlighted in chnaged gender
5642   -
5643   - if (($rootScope.isListManagerSelected == true) && ($rootScope.isGenderChnage == true)) {
5644   -
5645   - $scope.setLayerNumberAndHighlightByTermList();
5646   -
5647   - }
5648   -
5649   - else {
5650   -
5651   - $scope.CalculateImageCordinates($rootScope.viewOrientationId);
5652   -
5653   - }
  5815 +
  5816 + if (($rootScope.isListManagerSelected == true) && (($rootScope.isGenderChnage == true) || $rootScope.isViewChange == true)) {
  5817 +
  5818 + $scope.setLayerNumberAndHighlightByTermList();
  5819 +
  5820 + }
  5821 +
  5822 + else {
  5823 +
  5824 + $scope.CalculateImageCordinates($rootScope.viewOrientationId);
  5825 +
  5826 + }
5654 5827  
5655 5828 $scope.currentTitleFromJson = localStorage.getItem("currentViewTitle");
5656 5829 },
... ... @@ -5670,11 +5843,22 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5670 5843  
5671 5844 $scope.OnViewChange = function (event) {
5672 5845  
  5846 +
  5847 + $("#btnExtract").removeClass("disabled");
  5848 + $("#btnTranparency").removeClass("disabled");
  5849 + $rootScope.isTransparencyBoxActivated = false;
  5850 + $rootScope.isNormalMode = false;
  5851 +
  5852 + //close transparency box
  5853 + $scope.CloseTransparencyBox();
  5854 +
5673 5855 //if listanager is visisble then close it
5674 5856  
5675   - $rootScope.isListManagerSelected = false;
  5857 + //$rootScope.isListManagerSelected = false;
5676 5858 $rootScope.CloseListManager();
5677 5859  
  5860 + // $rootScope.isHighlightBodyByBodySystem = false;
  5861 +
5678 5862  
5679 5863 $rootScope.isLoading = true;
5680 5864 $('#spinner').css('visibility', 'visible');
... ... @@ -5832,23 +6016,25 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5832 6016 $scope.layerNumber = parseInt($('#txtlayerNumber').val());
5833 6017 //alert('mouseUp');
5834 6018  
5835   -
5836 6019  
5837   - $scope.loadSelectedBodyView(data.reloadDABodyViewId);
  6020 + if ($scope.layerNumber == 0) {
  6021 + $scope.loadSelectedBodyView(data.reloadDABodyViewId);
  6022 + }
  6023 + // $scope.loadSelectedBodyView(data.reloadDABodyViewId);
5838 6024  
5839 6025 $scope.loadSelectedBodyViewNavigator(data.reloadDABodyViewId);
5840 6026  
5841   - $scope.currentTitleFromJson = localStorage.getItem("currentViewTitle");
  6027 + // $scope.currentTitleFromJson = localStorage.getItem("currentViewTitle");
5842 6028  
5843 6029 //$rootScope.isSettingEventAlredayDispachted = false;
5844 6030 //}
5845 6031  
5846 6032 })
5847 6033  
5848   -
5849 6034  
5850   - $scope.loadSelectedBodyViewNavigator = function (currentBodyViewId) {
5851 6035  
  6036 + $scope.loadSelectedBodyViewNavigator = function (currentBodyViewId) {
  6037 +
5852 6038 //$rootScope.voId = currentBodyViewId;
5853 6039  
5854 6040 //$scope.skinTone = $rootScope.globalSetting.ethnicity;
... ... @@ -5905,7 +6091,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5905 6091 $rootScope.$on('annotationToolEvent', function (event, data) {
5906 6092 $("#canvas").css("display", "block");
5907 6093 $("#canvasPaint").css("display", "block");
5908   - $scope.doClick();
  6094 + $scope.BindCanvasDrawingListners();
5909 6095 $rootScope.FreeStylePaint();
5910 6096 });
5911 6097 $scope.mousePs;
... ... @@ -5921,12 +6107,16 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5921 6107 $scope.offsetY1 = 0;
5922 6108 $scope.x = 0;
5923 6109 $scope.y = 0;
5924   - $scope.doClick = function (event) {
  6110 + $scope.BindCanvasDrawingListners = function (event) {
5925 6111  
5926 6112 $scope.clicked = true;
5927 6113 // OnPaintCanvasMouseDown(event);
5928   - canvas.addEventListener('mousedown', $scope.OnPaintCanvasMouseDown, false);
5929   - canvas.addEventListener('mouseup', $scope.OnPaintCanvasMouseUp, false);
  6114 +
  6115 + var annotationCanvas = document.getElementById('canvas');
  6116 + if (annotationCanvas != null || annotationCanvas != undefined) {
  6117 + annotationCanvas.addEventListener('mousedown', $scope.OnPaintCanvasMouseDown, false);
  6118 + annotationCanvas.addEventListener('mouseup', $scope.OnPaintCanvasMouseUp, false);
  6119 + }
5930 6120 // alert("doclick");
5931 6121 };
5932 6122  
... ... @@ -5966,6 +6156,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
5966 6156 $rootScope.resetText = 0;
5967 6157 $rootScope.resetTextSave = 0;
5968 6158 $rootScope.ObjectIndexSave = 0;
  6159 +
5969 6160 var arrayRect = {};
5970 6161  
5971 6162  
... ... @@ -6013,7 +6204,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6013 6204 break;
6014 6205  
6015 6206 case "Line":
6016   -
  6207 +
6017 6208 $rootScope.resetLine = $rootScope.ObjectIndex++;
6018 6209 $('#canvas').addLayer({
6019 6210 name: 'Line_' + $rootScope.resetLine,
... ... @@ -6025,7 +6216,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6025 6216 rounded: true,
6026 6217 x1: $scope.offsetX1, y1: $scope.offsetY1,
6027 6218 x2: $scope.x, y2: $scope.y,
6028   -
  6219 +
6029 6220 click: function (layer) {
6030 6221 $rootScope.canvasLayerNameCollection = [];
6031 6222 $rootScope.canvasLayerNameCollection.push(layer.name);
... ... @@ -6094,10 +6285,10 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6094 6285  
6095 6286 resizeFromCenter: false,
6096 6287  
6097   - dblclick: function () {
  6288 + dblclick: function () {
6098 6289 // $rootScope.backOpacity();
6099   -
6100   - },
  6290 +
  6291 + },
6101 6292  
6102 6293 click: function (layer) {
6103 6294 $rootScope.canvasLayerNameCollection = [];
... ... @@ -6174,7 +6365,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6174 6365  
6175 6366  
6176 6367 click: function (layer) {
6177   - // alert(layer.name);
  6368 +
6178 6369 $rootScope.canvasLayerNameCollection = [];
6179 6370 $rootScope.canvasLayerNameCollection.push(layer.name);
6180 6371 $('#canvas').setLayer(layer.name, {
... ... @@ -6190,7 +6381,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6190 6381 },
6191 6382 mouseout: function (layer) {
6192 6383 $rootScope.canvasLayerNameCollection = [];
6193   -
  6384 +
6194 6385 $('#canvas').setLayer(layer.name, {
6195 6386 handle: {
6196 6387 type: 'arc',
... ... @@ -6317,7 +6508,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6317 6508 x2: $scope.x, y2: $scope.y,
6318 6509  
6319 6510 click: function (layer) {
6320   -
  6511 +
6321 6512 $rootScope.shapeTypePin = "Pin";
6322 6513 $rootScope.canvasLayerNameCollection = [];
6323 6514 var pinLine_layer = layer.name;
... ... @@ -6341,7 +6532,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6341 6532  
6342 6533 },
6343 6534 mouseout: function (layer) {
6344   -
  6535 +
6345 6536 $rootScope.canvasLayerNameCollection = [];
6346 6537 $('#canvas').setLayer(layer.name, {
6347 6538 handle: {
... ... @@ -6404,8 +6595,8 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6404 6595 $('.btnCursor').addClass('activebtncolor');
6405 6596 break;
6406 6597 case "TextArea":
6407   - $rootScope.IsTextAlreadySave = false;
6408   - $("#text_area").val('');
  6598 + $rootScope.IsTextAlreadySave = false;
  6599 + $("#text_area").val('');
6409 6600 // Draw text
6410 6601 $rootScope.resetTextRect = $rootScope.ObjectIndex++;
6411 6602 $rootScope.resetText = $rootScope.ObjectIndex++;
... ... @@ -6423,7 +6614,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6423 6614 align: "left",
6424 6615 fontFamily: 'Verdana, sans-serif',
6425 6616 text: ''
6426   -
  6617 +
6427 6618 })
6428 6619 // Draw rect as wide as the text
6429 6620 .drawRect({
... ... @@ -6487,9 +6678,25 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6487 6678  
6488 6679 $("#annotationTextModal").modal("toggle");
6489 6680 $('.btnCursor').trigger('click');
  6681 +
6490 6682 $("#text_area").val('');
  6683 +
6491 6684 $("#text_area").css({ " font-family": 'Verdana, sans-serif', "font-size": "14px", "font-weight": "normal", "font-style": "normal", "color": "#000", "text-align": "left", "text-decoration": "none" });
  6685 +
  6686 + $("#text-italic").removeClass("ActiveFormattingButtonClass");
  6687 +
  6688 + $("#text-bold").removeClass("ActiveFormattingButtonClass");
  6689 +
  6690 + $("#text-underline").removeClass("ActiveFormattingButtonClass");
  6691 +
  6692 + $("#text-left").removeClass("ActiveFormattingButtonClass");
  6693 +
  6694 + $("#text-right").removeClass("ActiveFormattingButtonClass");
  6695 +
  6696 + $("#text-center").removeClass("ActiveFormattingButtonClass");
  6697 +
6492 6698 $(".btn-annotation").removeClass("activebtncolor");
  6699 +
6493 6700 $('.btnCursor').addClass('activebtncolor');
6494 6701 break;
6495 6702  
... ... @@ -6502,6 +6709,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6502 6709  
6503 6710 }
6504 6711  
  6712 +
6505 6713 //-- TextArea functionality of Annotation toolbar
6506 6714  
6507 6715 $rootScope.fontSizes;
... ... @@ -6516,271 +6724,441 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6516 6724 $rootScope.modifySavedText = [];
6517 6725 $rootScope.TextRectangleArr = [];
6518 6726 $rootScope.rectDimension = [];
6519   -
  6727 +
6520 6728  
6521 6729 // will refactor this code later
6522 6730  
6523   -
  6731 +
6524 6732 $rootScope.saveText = function () {
6525 6733 // this part will work first time when save button will be clicked
6526 6734 if ($rootScope.IsTextAlreadySave == false) {
6527 6735 // getting textarea style properties
6528   - $rootScope.fontSizes = $("#text_area").css("font-size");
6529   - $rootScope.fontWeight = $("#text_area").css("font-weight");
6530   - $rootScope.fontStyle = $("#text_area").css("font-style");
6531   - $rootScope.textAlignmt = $("#text_area").css("text-align");
6532   - $rootScope.fontColor = $("#text_area").css("color");
6533   - $rootScope.fontFamily = $("#text_area").css("font-family");
6534   - $rootScope.underlineText = $("#text_area").css("text-decoration");
6535   - $rootScope.textArea = $("#text_area").val();
  6736 + $rootScope.fontSizes = $("#text_area").css("font-size");
  6737 + $rootScope.fontWeight = $("#text_area").css("font-weight");
  6738 + $rootScope.fontStyle = $("#text_area").css("font-style");
  6739 + $rootScope.textAlignmt = $("#text_area").css("text-align");
  6740 + $rootScope.fontColor = $("#text_area").css("color");
  6741 + $rootScope.fontFamily = $("#text_area").css("font-family");
  6742 + $rootScope.underlineText = $("#text_area").css("text-decoration");
  6743 + $rootScope.textArea = $("#text_area").val();
6536 6744  
6537 6745 // deleting previous text area
6538 6746  
6539   - $("#canvas").removeLayer('TextArea_' + $rootScope.resetText).drawLayers();
6540   - $("#canvas").removeLayer("TextRect_" + $rootScope.resetTextRect).drawLayers();
6541   -
6542   - // Text After Saving in Rectangle
6543   - $('#canvas').drawText({
6544   - layer: true,
6545   - draggable: true,
6546   - name: 'TextArea_' + $rootScope.resetText,
6547   - groups: ['TextArea_' + $rootScope.resetText],
6548   - dragGroups: ['TextArea_' + $rootScope.resetText],
6549   - fillStyle: $rootScope.fontColor,
6550   - fontStyle: $rootScope.fontStyle,
6551   - fontSize: $rootScope.fontSizes,
6552   - fontFamily: $rootScope.fontFamily,
6553   - align: $rootScope.textAlignmt,
6554   - strokeWidth: 0,
6555   - text: $rootScope.textArea,
6556   - x: $scope.offsetX1, y: $scope.offsetY1,
6557   - maxWidth: $scope.x - $scope.offsetX1,
6558   - maxHeight: $scope.y - $scope.offsetY1,
6559   - add: function (layer) {
6560   - $rootScope.TextPropertyArray.push({ Text1: '', Align: '', FontColor: '', FontSize: '', FontStyle: '', FontFamily: '' });
6561   - $rootScope.TextPropertyArray.push({ Text1: layer.text, Align: layer.align, FontColor: layer.fillStyle, FontSize: layer.fontSize, FontStyle: layer.fontStyle, FontFamily: layer.fontFamily });
  6747 + $("#canvas").removeLayer('TextArea_' + $rootScope.resetText).drawLayers();
  6748 + $("#canvas").removeLayer("TextRect_" + $rootScope.resetTextRect).drawLayers();
  6749 +
  6750 + // Text After Saving in Rectangle
  6751 + $('#canvas').drawText({
  6752 + layer: true,
  6753 + draggable: true,
  6754 + name: 'TextArea_' + $rootScope.resetText,
  6755 + groups: ['TextArea_' + $rootScope.resetText],
  6756 + dragGroups: ['TextArea_' + $rootScope.resetText],
  6757 + fillStyle: $rootScope.fontColor,
  6758 + fontStyle: $rootScope.fontWeight + " " + $rootScope.fontStyle,
  6759 + fontSize: $rootScope.fontSizes,
  6760 + fontFamily: $rootScope.fontFamily,
  6761 + align: $rootScope.textAlignmt,
  6762 + strokeWidth: 0,
  6763 + text: $rootScope.textArea,
  6764 + x: $scope.offsetX1, y: $scope.offsetY1,
  6765 + maxWidth: $scope.x - $scope.offsetX1,
  6766 + maxHeight: $scope.y - $scope.offsetY1,
  6767 + add: function (layer) {
  6768 + $rootScope.TextPropertyArray.push({ Text1: '', Align: '', FontColor: '', FontSize: '', FontStyle: '', FontFamily: '' });
  6769 + $rootScope.TextPropertyArray.push({ Text1: layer.text, Align: layer.align, FontColor: layer.fillStyle, FontSize: layer.fontSize, FontStyle: layer.fontStyle, FontFamily: layer.fontFamily, TextDecoration: $rootScope.underlineText });
6562 6770 }
6563   - })
6564   - // Draw rectangle
6565   - .drawRect({
6566   - name: 'TextArea1_' + $rootScope.resetText,
6567   - layer: true,
6568   - draggable: true,
6569   - groups: ['TextArea_' + $rootScope.resetText],
6570   - dragGroups: ['TextArea_' + $rootScope.resetText],
6571   - opacity: $rootScope.shapestyleOpacity,
6572   - strokeStyle: $rootScope.shapestyleborderColor,
6573   - strokeWidth: $rootScope.shapestyleborderWidth,
6574   - x: $scope.offsetX1, y: $scope.offsetY1,
6575   - width: $scope.x - $scope.offsetX1,
6576   - height: $scope.y - $scope.offsetY1,
6577   - click: function (layer) {
6578   - $rootScope.shapeTypeText = "textAreaRect";
6579   -
6580   - var layerNameSplit = layer.name;
6581   - var splitedName = layerNameSplit.split("_");
6582   - var textValName = "TextArea_";
6583   - var concatinateResult = textValName.concat(splitedName[1]);
6584   - $rootScope.canvasLayerNameCollection = [];
6585   - $rootScope.canvasLayerNameCollection.push({ textareaRectangle: layer.name, textareaString: concatinateResult });
6586   - $('#canvas').setLayer(layer.name, {
6587   - handle: {
6588   - type: 'rectangle',
6589   - fillStyle: '#fff',
6590   - strokeStyle: '#c33',
6591   - strokeWidth: 2,
6592   - width: 5, height: 5,
6593   - cornerRadius: 3
6594   - }
6595   - }).drawLayers();
6596   - },
6597   - dblclick: function (layer) {
6598   - $rootScope.IsTextAlreadySave = true;
6599   -
6600   - var _rectLayerOnSave = layer.name;
6601   - var _rectLayerOnSaveSplit = _rectLayerOnSave.split("_");
6602   - var TextAreaRectName = "TextArea_";
6603   - var TextAreaRectNameConcatenated = TextAreaRectName.concat(_rectLayerOnSaveSplit[1]);
6604   - $rootScope.modifySavedText.push({ TextName: layer.name, RectText: TextAreaRectNameConcatenated });
6605   - $rootScope.rectDimension.push({ width: layer.width, height: layer.height, x: layer.x, y: layer.y });
6606   - var _rectLayerOnSaveSplitInt;
6607   - if (_rectLayerOnSaveSplit[1] >= 3)
6608   - _rectLayerOnSaveSplitInt = parseInt(_rectLayerOnSaveSplit[1] - 2);
6609   - else
6610   - _rectLayerOnSaveSplitInt = parseInt(_rectLayerOnSaveSplit[1]);
6611   - var b = $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].Text1;
6612   - $("#text_area").val(b);
6613   - $("#text_area").css("font-size", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].FontSize);
6614   - $("#text_area").css("font-weight", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].FontStyle);
6615   - $("#text_area").css("font-style", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].FontStyle);
6616   - $("#text_area").css("text-align", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].Align);
6617   - $("#text_area").css("color", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].FontColor);
6618   - $("#text_area").css("font-family", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].FontFamily);
6619   - $("#text_area").css("text-decoration", $rootScope.underlineText);
6620   - _rectLayerOnSaveSplitInt = ''; b = '';
6621   - $("#annotationTextModal").modal("toggle");
6622   - },
6623   - mouseout: function (layer) {
6624   - $rootScope.canvasLayerNameCollection = [];
6625   - $('#canvas').setLayer(layer.name, {
6626   - handle: {
6627   - type: 'rectangle',
6628   - fillStyle: 'pink',
6629   - strokeStyle: 'yellow',
6630   - strokeWidth: 0,
6631   - width: 0, height: 0,
6632   - cornerRadius: 0
6633   - }
6634   - }).drawLayers();
6635   - },
6636   - mouseover: function (layer) {
6637   - $('#canvas').setLayer(layer.name, {
6638   - handle: {
6639   - type: 'rectangle',
6640   - fillStyle: '#fff',
6641   - strokeStyle: '#c33',
6642   - strokeWidth: 2,
6643   - width: 5, height: 5,
6644   - cornerRadius: 3
6645   - }
6646   - }).drawLayers();
6647   -
6648   - }
6649   - });
6650   - $("#text_area").val('');
6651   - $("#text_area").css({ " font-family": "'Verdana, sans-serif'", "font-size": "14px", "font-weight": "normal", "font-style": "normal", "color": "#000", "text-align": "left", "text-decoration": "none" });
6652   -
6653   - }
6654   -
6655   -// this part will work second time when save button will be clicked
6656   - else {
6657   - // getting textarea style properties
6658   - var _modifiedText = $("#text_area").val();
6659   - var _modifiedFontSize = $("#text_area").css("font-size");
6660   - var _modifiedFontWeight = $("#text_area").css("font-weight");
6661   - var _modifiedFontStyle = $("#text_area").css("font-style");
6662   - var _modifiedTextAlign = $("#text_area").css("text-align");
6663   - var _modifiedFontColor = $("#text_area").css("color");
6664   - var _modifiedFontFamily = $("#text_area").css("font-family");
6665   - var _modifiedFontDecoration = $("#text_area").css("text-decoration");
6666   -
6667   - // deleting previous textarea
6668   - $("#canvas").removeLayer($rootScope.modifySavedText[0].RectText).drawLayers();
6669   - $("#canvas").removeLayer($rootScope.modifySavedText[0].TextName).drawLayers();
6670   - $rootScope.resetTextRectSave = $rootScope.ObjectIndexSave++;
6671   - $rootScope.resetTextSave = $rootScope.ObjectIndexSave++;
6672   -
6673   - // generating new text area
6674   - $('#canvas').drawText({
6675   - layer: true,
6676   - draggable: true,
6677   - name: 'TextAreaAfterEdit_' + $rootScope.resetTextSave,
6678   - groups: ['TextAreaAfterEdit_' + $rootScope.resetTextSave],
6679   - dragGroups: ['TextAreaAfterEdit_' + $rootScope.resetTextSave],
6680   - fillStyle: _modifiedFontColor,
6681   - fontStyle: _modifiedFontStyle,
6682   - fontSize: _modifiedFontSize,
6683   - fontFamily: _modifiedFontFamily,
6684   - align: _modifiedTextAlign,
6685   - strokeWidth: 0,
6686   - text: _modifiedText,
6687   - x: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].x, y: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].y,
6688   - maxWidth: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].width,
6689   - maxHeight: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].height
6690   -
6691   - })
6692   - // Draw rect as wide as the text
6693   - .drawRect({
6694   - name: 'TextAreaAfterEditRect_' + $rootScope.resetTextSave,
6695   - layer: true,
6696   - draggable: true,
6697   - groups: ['TextAreaAfterEdit_' + $rootScope.resetTextSave],
6698   - dragGroups: ['TextAreaAfterEdit_' + $rootScope.resetTextSave],
6699   - opacity: $rootScope.shapestyleOpacity,
6700   - strokeStyle: $rootScope.shapestyleborderColor,
6701   - strokeWidth: $rootScope.shapestyleborderWidth,
6702   - x: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].x, y: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].y,
6703   - width: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].width,
6704   - height: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].height,
6705   - click: function (layer) {
6706   - $rootScope.shapeTypeText = "textAreaRect";
6707   - var layerNameSplit = layer.name;
6708   - var splitedName = layerNameSplit.split("_");
6709   - var textValName = "TextAreaAfterEdit_";
  6771 + })
  6772 + // Draw rectangle
  6773 + .drawRect({
  6774 + name: 'TextArea1_' + $rootScope.resetText,
  6775 + layer: true,
  6776 + draggable: true,
  6777 + groups: ['TextArea_' + $rootScope.resetText],
  6778 + dragGroups: ['TextArea_' + $rootScope.resetText],
  6779 + opacity: $rootScope.shapestyleOpacity,
  6780 + strokeStyle: $rootScope.shapestyleborderColor,
  6781 + strokeWidth: $rootScope.shapestyleborderWidth,
  6782 + x: $scope.offsetX1, y: $scope.offsetY1,
  6783 + width: $scope.x - $scope.offsetX1,
  6784 + height: $scope.y - $scope.offsetY1,
  6785 + click: function (layer) {
  6786 + $rootScope.shapeTypeText = "textAreaRect";
  6787 +
  6788 + var layerNameSplit = layer.name;
  6789 + var splitedName = layerNameSplit.split("_");
  6790 + var textValName = "TextArea_";
6710 6791 var concatinateResult = textValName.concat(splitedName[1]);
6711 6792 $rootScope.canvasLayerNameCollection = [];
6712   - $rootScope.canvasLayerNameCollection.push({ textareaRectangle: layer.name, textareaString: concatinateResult });
6713   -
6714   - $('#canvas').setLayer(layer.name, {
6715   - handle: {
6716   - type: 'rectangle',
6717   - fillStyle: '#fff',
6718   - strokeStyle: '#c33',
6719   - strokeWidth: 2,
6720   - width: 5, height: 5,
6721   - cornerRadius: 3
6722   - }
6723   - }).drawLayers();
6724   -
6725   - },
6726   - dblclick: function (layer) {
6727   -
6728   - $rootScope.IsTextAlreadySave = true;
6729   - var _rectLayerOnSave = layer.name;
6730   - var _rectLayerOnSaveSplit = _rectLayerOnSave.split("_");
6731   - var RectNameAfterEdit = "TextAreaAfterEdit_";
6732   - var RectNameAfterEditResult = RectNameAfterEdit.concat(_rectLayerOnSaveSplit[1]);
6733   - $rootScope.modifySavedText.push({ TextName: layer.name, RectText: RectNameAfterEditResult });
6734   - $rootScope.rectDimension.push({ width: layer.width, height: layer.height, x: layer.x, y: layer.y });
6735   - $("#text_area").val(_modifiedText);
6736   - $("#text_area").css("font-size", _modifiedFontSize);
6737   - $("#text_area").css("font-weight", _modifiedFontWeight);
6738   - $("#text_area").css("font-style", _modifiedFontStyle);
6739   - $("#text_area").css("text-align", _modifiedTextAlign);
6740   - $("#text_area").css("color", _modifiedFontColor);
6741   - $("#text_area").css("font-family", _modifiedFontFamily);
6742   - $("#text_area").css("text-decoration", _modifiedFontDecoration);
6743   - $("#annotationTextModal").modal("toggle");
6744   - },
6745   - mouseout: function (layer) {
6746   - $rootScope.canvasLayerNameCollection = [];
6747   - $('#canvas').setLayer(layer.name, {
6748   - handle: {
6749   - type: 'rectangle',
6750   - fillStyle: 'pink',
6751   - strokeStyle: 'yellow',
6752   - strokeWidth: 0,
6753   - width: 0, height: 0,
6754   - cornerRadius: 0
6755   - }
6756   - }).drawLayers();
6757   - },
6758   - mouseover: function (layer) {
6759   - $('#canvas').setLayer(layer.name, {
6760   - handle: {
6761   - type: 'rectangle',
6762   - fillStyle: '#fff',
6763   - strokeStyle: '#c33',
6764   - strokeWidth: 2,
6765   - width: 5, height: 5,
6766   - cornerRadius: 3
6767   - }
6768   - }).drawLayers();
6769   -
6770   - }
6771   - });
  6793 + $rootScope.canvasLayerNameCollection.push({ textareaRectangle: layer.name, textareaString: concatinateResult });
  6794 + $('#canvas').setLayer(layer.name, {
  6795 + handle: {
  6796 + type: 'rectangle',
  6797 + fillStyle: '#fff',
  6798 + strokeStyle: '#c33',
  6799 + strokeWidth: 2,
  6800 + width: 5, height: 5,
  6801 + cornerRadius: 3
  6802 + }
  6803 + }).drawLayers();
  6804 + },
  6805 + dblclick: function (layer) {
  6806 + $rootScope.IsTextAlreadySave = true;
  6807 +
  6808 + var _rectLayerOnSave = layer.name;
  6809 + var _rectLayerOnSaveSplit = _rectLayerOnSave.split("_");
  6810 + var TextAreaRectName = "TextArea_";
  6811 + var TextAreaRectNameConcatenated = TextAreaRectName.concat(_rectLayerOnSaveSplit[1]);
  6812 + $rootScope.modifySavedText.push({ TextName: layer.name, RectText: TextAreaRectNameConcatenated });
  6813 + $rootScope.rectDimension.push({ width: layer.width, height: layer.height, x: layer.x, y: layer.y });
  6814 + var _rectLayerOnSaveSplitInt;
  6815 + //if (_rectLayerOnSaveSplit[1] >= 3)
  6816 + // _rectLayerOnSaveSplitInt = parseInt(_rectLayerOnSaveSplit[1] - 2);
  6817 + //else
  6818 + // _rectLayerOnSaveSplitInt = parseInt(_rectLayerOnSaveSplit[1]);
  6819 +
  6820 + _rectLayerOnSaveSplitInt = parseInt(_rectLayerOnSaveSplit[1]);
  6821 + var b = $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].Text1;
  6822 + $("#text_area").val(b);
  6823 + var fontStyleProp = $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].FontStyle;
  6824 + var fontWeightProp = fontStyleProp.split(" ");
  6825 +
  6826 + $("#text_area").css("font-size", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].FontSize);
  6827 + $("#text_area").css("font-weight", fontWeightProp[0]);
  6828 + $("#text_area").css("font-style", fontWeightProp[1]);
  6829 + $("#text_area").css("text-align", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].Align);
  6830 + $("#text_area").css("color", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].FontColor);
  6831 + $("#text_area").css("font-family", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].FontFamily);
  6832 + $("#text_area").css("text-decoration", $rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].TextDecoration);
  6833 +
  6834 +
  6835 +
  6836 +
  6837 + //adding text text decoration active class in text edit pop-up
  6838 +
  6839 + if ($rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].TextDecoration == "underline") {
  6840 +
  6841 + $("#text-underline").addClass("ActiveFormattingButtonClass");
  6842 +
  6843 + }
  6844 +
  6845 + else {
  6846 +
  6847 + $("#text-underline").removeClass("ActiveFormattingButtonClass");
  6848 +
  6849 + }
  6850 +
  6851 +
  6852 +
  6853 + //adding text font weight active class in text edit pop-up
  6854 +
  6855 + if (fontWeightProp[0] == 700) {
  6856 +
  6857 +
  6858 +
  6859 + $("#text-bold").addClass("ActiveFormattingButtonClass");
  6860 +
  6861 + }
  6862 +
  6863 + else
  6864 +
  6865 + {
  6866 +
  6867 + $("#text-bold").removeClass("ActiveFormattingButtonClass");
  6868 +
  6869 + }
  6870 +
  6871 + //adding text font style active class in text edit pop-up
  6872 +
  6873 + if (fontWeightProp[1] == "italic") {
  6874 +
  6875 +
  6876 + $("#text-italic").addClass("ActiveFormattingButtonClass");
  6877 + }
  6878 + else
  6879 +
  6880 + {
  6881 + $("#text-italic").removeClass("ActiveFormattingButtonClass");
  6882 +
  6883 +
  6884 +
  6885 + }
  6886 +
  6887 +
  6888 +
  6889 + //adding text alignment active class in text edit pop-up
  6890 +
  6891 + if ($rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].Align == "left") {
  6892 +
  6893 + $("#text-right").removeClass("ActiveFormattingButtonClass");
  6894 +
  6895 + $("#text-center").removeClass("ActiveFormattingButtonClass")
  6896 +
  6897 + $("#text-left").addClass("ActiveFormattingButtonClass");
  6898 +
  6899 + }
  6900 +
  6901 + else if ($rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].Align == "right") {
  6902 +
  6903 +
  6904 +
  6905 + $("#text-center").removeClass("ActiveFormattingButtonClass")
  6906 +
  6907 + $("#text-left").removeClass("ActiveFormattingButtonClass");
  6908 +
  6909 + $("#text-right").addClass("ActiveFormattingButtonClass");
  6910 +
  6911 +
  6912 +
  6913 + }
  6914 +
  6915 + else if ($rootScope.TextPropertyArray[_rectLayerOnSaveSplitInt].Align == "center") {
  6916 +
  6917 + $("#text-left").removeClass("ActiveFormattingButtonClass");
  6918 +
  6919 + $("#text-right").removeClass("ActiveFormattingButtonClass");
  6920 +
  6921 + $("#text-center").addClass("ActiveFormattingButtonClass");
  6922 +
  6923 +
  6924 +
  6925 + }
  6926 +
  6927 +
  6928 + _rectLayerOnSaveSplitInt = ''; b = '';
  6929 + $("#annotationTextModal").modal("toggle");
  6930 + },
  6931 + mouseout: function (layer) {
  6932 + $rootScope.canvasLayerNameCollection = [];
  6933 + $('#canvas').setLayer(layer.name, {
  6934 + handle: {
  6935 + type: 'rectangle',
  6936 + fillStyle: 'pink',
  6937 + strokeStyle: 'yellow',
  6938 + strokeWidth: 0,
  6939 + width: 0, height: 0,
  6940 + cornerRadius: 0
  6941 + }
  6942 + }).drawLayers();
  6943 + },
  6944 + mouseover: function (layer) {
  6945 + $('#canvas').setLayer(layer.name, {
  6946 + handle: {
  6947 + type: 'rectangle',
  6948 + fillStyle: '#fff',
  6949 + strokeStyle: '#c33',
  6950 + strokeWidth: 2,
  6951 + width: 5, height: 5,
  6952 + cornerRadius: 3
  6953 + }
  6954 + }).drawLayers();
  6955 +
  6956 + }
  6957 + });
  6958 + $("#text_area").val('');
  6959 + $("#text_area").css({ " font-family": "'Verdana, sans-serif'", "font-size": "14px", "font-weight": "normal", "font-style": "normal", "color": "#000", "text-align": "left", "text-decoration": "none" });
  6960 +
  6961 +
  6962 + $("#text-italic").removeClass("ActiveFormattingButtonClass");
  6963 +
  6964 + $("#text-bold").removeClass("ActiveFormattingButtonClass");
  6965 +
  6966 + $("#text-underline").removeClass("ActiveFormattingButtonClass");
  6967 +
  6968 + $("#text-left").removeClass("ActiveFormattingButtonClass");
  6969 +
  6970 + $("#text-right").removeClass("ActiveFormattingButtonClass");
  6971 +
  6972 + $("#text-center").removeClass("ActiveFormattingButtonClass");
  6973 +
  6974 +
  6975 + }
  6976 +
  6977 + // this part will work second time when save button will be clicked
  6978 + else {
  6979 + // getting textarea style properties
  6980 + var _modifiedText = $("#text_area").val();
  6981 + var _modifiedFontSize = $("#text_area").css("font-size");
  6982 + var _modifiedFontWeight = $("#text_area").css("font-weight");
  6983 + var _modifiedFontStyle = $("#text_area").css("font-style");
  6984 + var _modifiedTextAlign = $("#text_area").css("text-align");
  6985 + var _modifiedFontColor = $("#text_area").css("color");
  6986 + var _modifiedFontFamily = $("#text_area").css("font-family");
  6987 + var _modifiedFontDecoration = $("#text_area").css("text-decoration");
  6988 +
  6989 + // deleting previous textarea
  6990 + $("#canvas").removeLayer($rootScope.modifySavedText[0].RectText).drawLayers();
  6991 + $("#canvas").removeLayer($rootScope.modifySavedText[0].TextName).drawLayers();
  6992 + $rootScope.resetTextRectSave = $rootScope.ObjectIndexSave++;
  6993 + $rootScope.resetTextSave = $rootScope.ObjectIndexSave++;
  6994 +
  6995 + // generating new text area
  6996 + $('#canvas').drawText({
  6997 + layer: true,
  6998 + draggable: true,
  6999 + name: 'TextAreaAfterEdit_' + $rootScope.resetTextSave,
  7000 + groups: ['TextAreaAfterEdit_' + $rootScope.resetTextSave],
  7001 + dragGroups: ['TextAreaAfterEdit_' + $rootScope.resetTextSave],
  7002 + fillStyle: _modifiedFontColor,
  7003 + fontStyle: _modifiedFontWeight + " " + _modifiedFontStyle,
  7004 + fontSize: _modifiedFontSize,
  7005 + fontFamily: _modifiedFontFamily,
  7006 + align: _modifiedTextAlign,
  7007 + strokeWidth: 0,
  7008 + text: _modifiedText,
  7009 + x: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].x, y: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].y,
  7010 + maxWidth: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].width,
  7011 + maxHeight: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].height
  7012 +
  7013 + })
  7014 + // Draw rect as wide as the text
  7015 + .drawRect({
  7016 + name: 'TextAreaAfterEditRect_' + $rootScope.resetTextSave,
  7017 + layer: true,
  7018 + draggable: true,
  7019 + groups: ['TextAreaAfterEdit_' + $rootScope.resetTextSave],
  7020 + dragGroups: ['TextAreaAfterEdit_' + $rootScope.resetTextSave],
  7021 + opacity: $rootScope.shapestyleOpacity,
  7022 + strokeStyle: $rootScope.shapestyleborderColor,
  7023 + strokeWidth: $rootScope.shapestyleborderWidth,
  7024 + x: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].x, y: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].y,
  7025 + width: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].width,
  7026 + height: $rootScope.rectDimension[$rootScope.rectDimension.length - 1].height,
  7027 + click: function (layer) {
  7028 + $rootScope.shapeTypeText = "textAreaRect";
  7029 + var layerNameSplit = layer.name;
  7030 + var splitedName = layerNameSplit.split("_");
  7031 + var textValName = "TextAreaAfterEdit_";
  7032 + var concatinateResult = textValName.concat(splitedName[1]);
  7033 + $rootScope.canvasLayerNameCollection = [];
  7034 + $rootScope.canvasLayerNameCollection.push({ textareaRectangle: layer.name, textareaString: concatinateResult });
  7035 +
  7036 + $('#canvas').setLayer(layer.name, {
  7037 + handle: {
  7038 + type: 'rectangle',
  7039 + fillStyle: '#fff',
  7040 + strokeStyle: '#c33',
  7041 + strokeWidth: 2,
  7042 + width: 5, height: 5,
  7043 + cornerRadius: 3
  7044 + }
  7045 + }).drawLayers();
  7046 +
  7047 + },
  7048 + dblclick: function (layer) {
  7049 +
  7050 + $rootScope.IsTextAlreadySave = true;
  7051 + var _rectLayerOnSave = layer.name;
  7052 + var _rectLayerOnSaveSplit = _rectLayerOnSave.split("_");
  7053 + var RectNameAfterEdit = "TextAreaAfterEdit_";
  7054 + var RectNameAfterEditResult = RectNameAfterEdit.concat(_rectLayerOnSaveSplit[1]);
  7055 + $rootScope.modifySavedText.push({ TextName: layer.name, RectText: RectNameAfterEditResult });
  7056 + $rootScope.rectDimension.push({ width: layer.width, height: layer.height, x: layer.x, y: layer.y });
  7057 + $("#text_area").val(_modifiedText);
  7058 + $("#text_area").css("font-size", _modifiedFontSize);
  7059 + $("#text_area").css("font-weight", _modifiedFontWeight);
  7060 + $("#text_area").css("font-style", _modifiedFontStyle);
  7061 + $("#text_area").css("text-align", _modifiedTextAlign);
  7062 + $("#text_area").css("color", _modifiedFontColor);
  7063 + $("#text_area").css("font-family", _modifiedFontFamily);
  7064 + $("#text_area").css("text-decoration", _modifiedFontDecoration);
  7065 +
  7066 +
  7067 +
  7068 + //adding text text decoration active class in text edit pop-up
  7069 + if (_modifiedFontDecoration == "underline") {
  7070 + $("#text-underline").addClass("ActiveFormattingButtonClass");
  7071 + }
  7072 + else {
  7073 + $("#text-underline").removeClass("ActiveFormattingButtonClass");
  7074 + }
  7075 +
  7076 + //adding text font weight active class in text edit pop-up
  7077 + if (_modifiedFontWeight == 700) {
  7078 +
  7079 + $("#text-bold").addClass("ActiveFormattingButtonClass");
  7080 + }
  7081 + else {
  7082 +
  7083 + $("#text-bold").removeClass("ActiveFormattingButtonClass");
  7084 +
  7085 + }
  7086 +
  7087 + //adding text font style active class in text edit pop-up
  7088 + if (_modifiedFontStyle == "italic") {
  7089 +
  7090 + $("#text-italic").addClass("ActiveFormattingButtonClass");
  7091 + }
  7092 + else {
  7093 + $("#text-italic").removeClass("ActiveFormattingButtonClass");
  7094 +
  7095 + }
  7096 +
  7097 + //adding text alignment active class in text edit pop-up
  7098 + if (_modifiedTextAlign == "left") {
  7099 + $("#text-right").removeClass("ActiveFormattingButtonClass");
  7100 + $("#text-center").removeClass("ActiveFormattingButtonClass")
  7101 + $("#text-left").addClass("ActiveFormattingButtonClass");
  7102 + }
  7103 + else if (_modifiedTextAlign == "right") {
  7104 +
  7105 + $("#text-center").removeClass("ActiveFormattingButtonClass")
  7106 + $("#text-left").removeClass("ActiveFormattingButtonClass");
  7107 + $("#text-right").addClass("ActiveFormattingButtonClass");
  7108 +
  7109 + }
  7110 + else if (_modifiedTextAlign == "center") {
  7111 + $("#text-left").removeClass("ActiveFormattingButtonClass");
  7112 + $("#text-right").removeClass("ActiveFormattingButtonClass");
  7113 + $("#text-center").addClass("ActiveFormattingButtonClass");
  7114 +
  7115 + }
  7116 +
  7117 +
  7118 +
  7119 +
  7120 +
  7121 + $("#annotationTextModal").modal("toggle");
  7122 + },
  7123 + mouseout: function (layer) {
  7124 + $rootScope.canvasLayerNameCollection = [];
  7125 + $('#canvas').setLayer(layer.name, {
  7126 + handle: {
  7127 + type: 'rectangle',
  7128 + fillStyle: 'pink',
  7129 + strokeStyle: 'yellow',
  7130 + strokeWidth: 0,
  7131 + width: 0, height: 0,
  7132 + cornerRadius: 0
  7133 + }
  7134 + }).drawLayers();
  7135 + },
  7136 + mouseover: function (layer) {
  7137 + $('#canvas').setLayer(layer.name, {
  7138 + handle: {
  7139 + type: 'rectangle',
  7140 + fillStyle: '#fff',
  7141 + strokeStyle: '#c33',
  7142 + strokeWidth: 2,
  7143 + width: 5, height: 5,
  7144 + cornerRadius: 3
  7145 + }
  7146 + }).drawLayers();
  7147 +
  7148 + }
  7149 + });
6772 7150 $rootScope.modifySavedText = [];
6773 7151  
6774   - }
  7152 + }
6775 7153 }
6776   -
  7154 +
6777 7155 // deleting text area on close button
6778 7156 $rootScope.closeModal = function () {
6779 7157  
6780   - $("#canvas").removeLayer('TextArea_' + $rootScope.resetText).drawLayers();
6781   - $("#canvas").removeLayer("TextRect_" + $rootScope.resetTextRect).drawLayers();
6782   -
6783   - }
  7158 + $("#canvas").removeLayer('TextArea_' + $rootScope.resetText).drawLayers();
  7159 + $("#canvas").removeLayer("TextRect_" + $rootScope.resetTextRect).drawLayers();
  7160 +
  7161 + }
6784 7162  
6785 7163  
6786 7164 function OnPaintCanvasMouseMove(event) {
... ... @@ -6789,7 +7167,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6789 7167 }
6790 7168  
6791 7169 $rootScope.FreeStylePaint = function (e) {
6792   -
  7170 +
6793 7171  
6794 7172 }
6795 7173 $scope.OnPaintBrushCanvasMouseDown = function (event) {
... ... @@ -6797,22 +7175,22 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6797 7175  
6798 7176 case "FreeStylePaint":
6799 7177  
6800   -
6801 7178  
6802   - // $('#canvasPaint').sketch();
6803   - // $('#canvasPaint').sketch({ defaultSize: 1 });
6804   - // if ($("#amount-2").val() == '') {
6805   - // //$('#canvasPaint').sketch({ defaultSize: $scope.shapesize });
6806   - // $('#canvasPaint').sketch();
6807   - // }
6808   - // else {
6809 7179  
6810   - // // var a = $("#amount-2").val();
6811   - //// $scope.shapesize = parseInt(a);
6812   - // // $('#canvasPaint').sketch({ defaultSize: $rootScope.shapeSize });
6813   - // // $('#canvasPaint').sketch({ defaultSize: $scope.shapesize });
  7180 + // $('#canvasPaint').sketch();
  7181 + // $('#canvasPaint').sketch({ defaultSize: 1 });
  7182 + // if ($("#amount-2").val() == '') {
  7183 + // //$('#canvasPaint').sketch({ defaultSize: $scope.shapesize });
  7184 + // $('#canvasPaint').sketch();
  7185 + // }
  7186 + // else {
6814 7187  
6815   - // }
  7188 + // // var a = $("#amount-2").val();
  7189 + //// $scope.shapesize = parseInt(a);
  7190 + // // $('#canvasPaint').sketch({ defaultSize: $rootScope.shapeSize });
  7191 + // // $('#canvasPaint').sketch({ defaultSize: $scope.shapesize });
  7192 +
  7193 + // }
6816 7194  
6817 7195  
6818 7196 break;
... ... @@ -6830,7 +7208,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6830 7208  
6831 7209 // case "FreeStylePaint":
6832 7210  
6833   -
  7211 +
6834 7212 // if ($("#amount-2").val() == '')
6835 7213 // {
6836 7214 // $('#canvasPaint').sketch({ defaultSize: $scope.shapesize });
... ... @@ -6856,9 +7234,9 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6856 7234  
6857 7235 $(document).keydown(function (event) {
6858 7236  
6859   -
  7237 + // predefined function for detecting keyboard key
6860 7238 if (event.which == 46) {
6861   -
  7239 +
6862 7240 if ($rootScope.shapeTypePin == "Pin") {
6863 7241  
6864 7242  
... ... @@ -6926,7 +7304,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6926 7304  
6927 7305  
6928 7306 //NIKITA
6929   - $scope.isHighlightBodyByBodySystem = true;
  7307 + $rootScope.isHighlightBodyByBodySystem = true;
6930 7308 $scope.systemMatchedTermList = new jinqJs()
6931 7309 .from($rootScope.BodySystemData.BodySystem.BodySystemTerm)
6932 7310 .where('_SystemNumber == ' + event.currentTarget.id)
... ... @@ -6938,14 +7316,38 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
6938 7316 console.log('highLightBody from HighlightBodyByBodySystem')
6939 7317 $scope.highLightBody();
6940 7318 }
6941   - //now highlight the selected body system in whole body
  7319 + else {
  7320 + //This else is when user seraced anything then change the view and clicked on highlight options
  7321 + //in this case body is already highlihted(gray) so no need to
  7322 + if ($scope.grayedBR != null || $scope.grayedBR != undefined) {
  7323 + if ((($rootScope.viewOrientationId == '1') || ($rootScope.viewOrientationId == '4')) && ($scope.grayedBR.length == 9)) {
  7324 + $scope.isAlreadyHighlighted = true;
  7325 + }
  7326 + else if ((($rootScope.viewOrientationId == '2') || ($rootScope.viewOrientationId == '3')) && ($scope.grayedBR.length == 5)) {
  7327 + $scope.isAlreadyHighlighted = true;
  7328 + }
  7329 + else if ((($rootScope.viewOrientationId == '5')) && ($scope.grayedBR.length == 4)) {
  7330 + $scope.isAlreadyHighlighted = true;
  7331 + }
  7332 + else if ((($rootScope.viewOrientationId == '6')) && ($scope.grayedBR.length == 1)) {
  7333 + $scope.isAlreadyHighlighted = true;
  7334 + }
  7335 + if (($scope.isAlreadyHighlighted == true && $rootScope.isHighlightBodyByBodySystem == true) && ($scope.systemMatchedTermList != null || $scope.systemMatchedTermList != undefined && $scope.systemMatchedTermList.length > 0)) {
  7336 +
  7337 + $scope.isLoading = true;
  7338 +
  7339 + $('#spinner').css('visibility', 'visible');
  7340 + $timeout(function () { $scope.HighlightBodyByTermList($scope.systemMatchedTermList) }, 100);
  7341 + }
  7342 + }
  7343 + }
6942 7344  
6943 7345  
6944 7346 //$rootScope.isLoading = true;
6945 7347 $('#spinner').css('visibility', 'visible');
6946 7348  
6947 7349 //NIKITA
6948   - // $scope.isHighlightBodyByBodySystem = true;
  7350 + // $rootScope.isHighlightBodyByBodySystem = true;
6949 7351  
6950 7352 //if (systemMatchedTermList != null || systemMatchedTermList != undefined) {
6951 7353  
... ... @@ -7165,12 +7567,22 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7165 7567 $scope.ShowSearch = function () {
7166 7568  
7167 7569 console.log('ShowSearch is called');
  7570 + //this check is for log only because we are writing length so need to check if its not null or undefined
  7571 + if ($scope.VocabTermTxt != null || $scope.VocabTermTxt != undefined)
  7572 + console.log('$scope.VocabTermTxt.length= ' + $scope.VocabTermTxt.length)
7168 7573  
7169 7574 $timeout(function () {
7170   - $scope.IsSearchVisible = true;
7171   -
7172   - document.getElementById("termlistfilter").style.display = "block";
7173   - }, 1000);
  7575 + if (($scope.VocabTermTxt!=null|| $scope.VocabTermTxt!=undefined) && ($scope.VocabTermTxt.length > 0)) {
  7576 + $scope.IsSearchVisible = true;
  7577 + document.getElementById("termlistfilter").style.display = "block";
  7578 + }
  7579 + else {
  7580 + $scope.loadSearchDataForBodyView();
  7581 + if ($scope.VocabTermTxt.length > 0) {
  7582 + $scope.ShowSearch();
  7583 + }
  7584 + }
  7585 + }, 500);
7174 7586  
7175 7587 //$scope.IsSearchVisible = true;
7176 7588  
... ... @@ -7242,7 +7654,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7242 7654 $("#canvasDiv").scrollTop(scrolly);
7243 7655 $("#canvasDiv").scrollLeft(scrollx);
7244 7656  
7245   - if (($scope.isHighlightBodyByBodySystem == true) && ($scope.systemMatchedTermList != null || $scope.systemMatchedTermList != undefined)) {
  7657 + if (($rootScope.isHighlightBodyByBodySystem == true) && ($scope.systemMatchedTermList != null || $scope.systemMatchedTermList != undefined)) {
7246 7658 $timeout(function () { $scope.HighlightBodyByTermList(systemMatchedTermList) }, 100);
7247 7659 }
7248 7660  
... ... @@ -7278,7 +7690,10 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7278 7690 }
7279 7691 }
7280 7692 $('#spinner').css('visibility', 'visible');
7281   - console.log('listManagerEvent')
  7693 + console.log('listManagerEvent');
  7694 +
  7695 +
  7696 +
7282 7697 if ($rootScope.islistManagerEventAlredayDispachted == true) {
7283 7698  
7284 7699  
... ... @@ -7368,17 +7783,17 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7368 7783 for (var j = 0; j < $scope.VocabTermTxt.length; j++) {
7369 7784 var $el = $('<option ng-click=HighlightBodyOnListManagerSelection($event) id=' + $scope.VocabTermTxt[j]._ActualTermNumber + '>' + $scope.VocabTermTxt[j]._TermText + '</option>').appendTo('#termList')
7370 7785 $compile($el)($scope);
7371   -
  7786 +
7372 7787 $rootScope.isLoading = false;
7373 7788 $('#spinner').css('visibility', 'hidden');
7374 7789 }
7375 7790 var termsTotal = '<span class="pull-left marginTop5">' + $scope.VocabTermTxt.length + ' Structures</span>';
7376 7791 $("#totalTerms").empty();
7377 7792 $('#totalTerms').append(termsTotal);
7378   -
  7793 +
7379 7794  
7380 7795 }
7381   - }
  7796 + }
7382 7797  
7383 7798  
7384 7799 $scope.HighlightBodyOnListManagerSelection = function (event) {
... ... @@ -7402,6 +7817,9 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7402 7817 $rootScope.isLoading = true;
7403 7818  
7404 7819 $('#spinner').css('visibility', 'visible');
  7820 +
  7821 + $rootScope.isHighlightBodyByBodySystem = false;
  7822 +
7405 7823 //1.
7406 7824 $rootScope.actualTermNumber = event.currentTarget.id;//attributes[0].value;
7407 7825 console.log(' $scope.actualTermNumber insde HighlightBodyOnListManagerSelection= ' + $rootScope.actualTermNumber)
... ... @@ -7418,83 +7836,85 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7418 7836  
7419 7837 $scope.TermList = $scope.getTermNumberList($rootScope.actualTermNumber);
7420 7838  
7421   - var internalLayerNumberList = [];
7422   - for (var i = 0; i < $scope.TermList.length; i++) {
7423   - var layerNumber = $scope.TermList[i]._InternalLayerNumber
  7839 + if (($scope.TermList != null || $scope.TermList != undefined) && $scope.TermList.length > 0) {
7424 7840  
7425   - internalLayerNumberList[i] = parseInt(layerNumber);
7426   - }
  7841 + var internalLayerNumberList = [];
  7842 + for (var i = 0; i < $scope.TermList.length; i++) {
  7843 + var layerNumber = $scope.TermList[i]._InternalLayerNumber
7427 7844  
7428   - internalLayerNumberList.sort(function (a, b) { return a - b })
7429   - var internalLayerNumber = internalLayerNumberList[0]//.replace('00', '');
  7845 + internalLayerNumberList[i] = parseInt(layerNumber);
  7846 + }
7430 7847  
7431   - //3. get layer number
7432   - if (internalLayerNumber >= DA[0].SKIN_START_INTERNAL_LAYER && internalLayerNumber <= DA[0].SKIN_END_INTERNAL_LAYER) {
  7848 + internalLayerNumberList.sort(function (a, b) { return a - b })
  7849 + var internalLayerNumber = internalLayerNumberList[0]//.replace('00', '');
7433 7850  
7434   - internalLayerNumber = DA[0].SKIN_DEFAULT_INTERNAL_LAYER;
7435   - }
  7851 + //3. get layer number
  7852 + if (internalLayerNumber >= DA[0].SKIN_START_INTERNAL_LAYER && internalLayerNumber <= DA[0].SKIN_END_INTERNAL_LAYER) {
7436 7853  
7437   - var layerNumber;
7438   - var matchedLayerNumber = new jinqJs()
7439   - .from($rootScope.BodyLayerData.Layers.DataLayer)
7440   - .where("_lni == " + internalLayerNumber)
7441   - .select('_LayerNumber');
  7854 + internalLayerNumber = DA[0].SKIN_DEFAULT_INTERNAL_LAYER;
  7855 + }
7442 7856  
7443   - if (matchedLayerNumber == null || matchedLayerNumber.length == 0) {
7444   - layerNumber = 0;
7445   - }
7446   - else {
7447   - layerNumber = matchedLayerNumber[0]._LayerNumber
7448   - }
  7857 + var layerNumber;
  7858 + var matchedLayerNumber = new jinqJs()
  7859 + .from($rootScope.BodyLayerData.Layers.DataLayer)
  7860 + .where("_lni == " + internalLayerNumber)
  7861 + .select('_LayerNumber');
7449 7862  
7450   - if (layerNumber == 0) {
7451   - layerNumber = $rootScope.totalLayers;
7452   - }
7453   - else {
7454   - layerNumber = parseInt(layerNumber) - 1;
7455   - }
  7863 + if (matchedLayerNumber == null || matchedLayerNumber.length == 0) {
  7864 + layerNumber = 0;
  7865 + }
  7866 + else {
  7867 + layerNumber = matchedLayerNumber[0]._LayerNumber
  7868 + }
7456 7869  
7457   - $scope.layerNumber = layerNumber;
  7870 + if (layerNumber == 0) {
  7871 + layerNumber = $rootScope.totalLayers;
  7872 + }
  7873 + else {
  7874 + layerNumber = parseInt(layerNumber) - 1;
  7875 + }
7458 7876  
7459   - //4.get scroll position
7460   - if ($rootScope.actualTermNumber != DA[0].SKIN_TERM_ID) {
  7877 + $scope.layerNumber = layerNumber;
7461 7878  
7462   - $scope.termCoordinate = $scope.getTermCoordinate($rootScope.actualTermNumber);
  7879 + //4.get scroll position
  7880 + if ($rootScope.actualTermNumber != DA[0].SKIN_TERM_ID) {
7463 7881  
7464   - }
  7882 + $scope.termCoordinate = $scope.getTermCoordinate($rootScope.actualTermNumber);
7465 7883  
7466   - //5.
7467   - $scope.matchdedDataOnLayer = new jinqJs()
7468   - .from($rootScope.TermNumberData.TermData.Term)
7469   - .where('_InternalLayerNumber == ' + internalLayerNumber)
7470   - .select();
  7884 + }
7471 7885  
7472   - if ($scope.matchdedDataOnLayer != null || $scope.matchdedDataOnLayer != undefined) {
  7886 + //5.
  7887 + $scope.matchdedDataOnLayer = new jinqJs()
  7888 + .from($rootScope.TermNumberData.TermData.Term)
  7889 + .where('_InternalLayerNumber == ' + internalLayerNumber)
  7890 + .select();
7473 7891  
7474   - //6.
7475   - var matchedDataonActualTerm = new jinqJs()
7476   - .from($scope.matchdedDataOnLayer)
7477   - .where('_ActualTermNumber == ' + $scope.actualTermNumber)
7478   - .select('_TermNumber');
  7892 + if ($scope.matchdedDataOnLayer != null || $scope.matchdedDataOnLayer != undefined) {
7479 7893  
7480   - if (matchedDataonActualTerm != null || matchedDataonActualTerm != undefined) {
  7894 + //6.
  7895 + var matchedDataonActualTerm = new jinqJs()
  7896 + .from($scope.matchdedDataOnLayer)
  7897 + .where('_ActualTermNumber == ' + $scope.actualTermNumber)
  7898 + .select('_TermNumber');
7481 7899  
7482   - var termNo = matchedDataonActualTerm[0]._TermNumber.toString();
  7900 + if (matchedDataonActualTerm != null || matchedDataonActualTerm != undefined) {
7483 7901  
7484   - //7.get termList
7485   - $scope.fullTermlist = [];
7486   - $scope.AllTerms = [];
  7902 + var termNo = matchedDataonActualTerm[0]._TermNumber.toString();
7487 7903  
7488   - if (termNo != DA[0].figLeafTermId) {
  7904 + //7.get termList
  7905 + $scope.fullTermlist = [];
  7906 + $scope.AllTerms = [];
7489 7907  
7490   - $scope.getChildTermList(termNo);
7491   - // $timeout(function () { $scope.getSiblings(termNo) }, 50);
7492   - $scope.getSiblings(termNo)
7493   - }
  7908 + if (termNo != DA[0].figLeafTermId) {
  7909 +
  7910 + $scope.getChildTermList(termNo);
  7911 + // $timeout(function () { $scope.getSiblings(termNo) }, 50);
  7912 + $scope.getSiblings(termNo)
  7913 + }
7494 7914  
  7915 + }
7495 7916 }
7496 7917 }
7497   -
7498 7918 $('#txtlayerNumber').val((parseInt($scope.layerNumber)));
7499 7919 $('#layerChangeSlider').slider("option", "value", parseInt($rootScope.totalLayers) - parseInt($scope.layerNumber));
7500 7920  
... ... @@ -7512,6 +7932,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7512 7932 //redraw body of respective layer
7513 7933 $scope.CalculateImageCordinates($rootScope.viewOrientationId)
7514 7934 }, 500);
  7935 +
7515 7936 }
7516 7937  
7517 7938 $scope.getChildTermList = function (termNo) {
... ... @@ -7581,7 +8002,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7581 8002 }
7582 8003 }
7583 8004  
7584   -
  8005 +
7585 8006 $scope.aligneCanvasWithTerm = function () {
7586 8007 console.log('aligneCanvasWithTerm')
7587 8008 var newX = parseInt($scope.scaleValue($scope.termCoordinate.x, $scope.zoomInOut, DA[0].ZOOM_TERM_DATA));
... ... @@ -7596,7 +8017,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7596 8017 var canvasRight = canvasX + canvasWidth
7597 8018  
7598 8019 if (newX < canvasX || newX > canvasRight || newY < canvasY || newY > canvasBottom) {
7599   -
  8020 +
7600 8021 newX = newX - canvasWidth / 2;
7601 8022 newY = newY - canvasHeight / 2;
7602 8023  
... ... @@ -7625,7 +8046,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7625 8046  
7626 8047 $rootScope.CanvasDivTopPosition = $("#canvasDiv").scrollTop();
7627 8048 $rootScope.CanvasDivLeftPosition = $("#canvasDiv").scrollLeft();
7628   -
  8049 +
7629 8050 }
7630 8051  
7631 8052  
... ... @@ -7744,13 +8165,167 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo
7744 8165 }
7745 8166  
7746 8167 $scope.LayerChangeBasedOnKeyPressed = function (e) {
7747   -
7748   - if(e.keyCode==13)
7749   - {
7750   - $scope.LayerChange();
  8168 +
  8169 + if (e.keyCode == 13) {
  8170 + $scope.LayerChange();
7751 8171 }
7752   -
  8172 +
  8173 + // 'x' button is displaying inside the input box in IE browser.
  8174 + if (e.which == 38) {
  8175 +
  8176 +
  8177 + var layerInputVal = $("#txtlayerNumber").val();
  8178 + if (layerInputVal != $rootScope.totalLayers) {
  8179 + var layerInputValInc = parseInt(layerInputVal) + 1;
  8180 + $scope.layerNumber = parseInt(layerInputValInc);
  8181 + $("#txtlayerNumber").val($scope.layerNumber);
  8182 + }
  8183 +
  8184 +
  8185 + }
  8186 +
  8187 + // 'x' button is displaying inside the input box in IE browser.
  8188 + if (e.which == 40) {
  8189 + var layerInputVal = $("#txtlayerNumber").val();
  8190 + if (layerInputVal > 0) {
  8191 + var layerInputValDec = parseInt(layerInputVal) - 1;
  8192 + $scope.layerNumber = parseInt(layerInputValDec);
  8193 + $("#txtlayerNumber").val($scope.layerNumber);
  8194 + }
  8195 + }
  8196 +
  8197 +
7753 8198 }
  8199 +
  8200 +
  8201 +
  8202 +
  8203 +
7754 8204 }]
7755 8205  
7756   -);
7757 8206 \ No newline at end of file
  8207 +);
  8208 +
  8209 +
  8210 +function OnGenderChange(event) {
  8211 +
  8212 + console.log('gender chnaged is called outside ');
  8213 + var scope = angular.element(document.getElementById("daView")).scope();
  8214 + scope.$apply(function () {
  8215 + scope.OnGenderChange(event);
  8216 + });
  8217 +}
  8218 +
  8219 +function OnViewChange(event) {
  8220 + console.log('OnViewChange chnaged is called outside ');
  8221 + var scope = angular.element(document.getElementById("daView")).scope();
  8222 + scope.$apply(function () {
  8223 + scope.OnViewChange(event);
  8224 + });
  8225 +}
  8226 +
  8227 +function OnBodySystemSelection(event) {
  8228 + console.log('OnBodySystem chnaged is called outside ');
  8229 + var scope = angular.element(document.getElementById("daView")).scope();
  8230 + scope.$apply(function () {
  8231 + scope.HighlightBodyByBodySystem(event);
  8232 + });
  8233 +}
  8234 +
  8235 +function enableShowHideStructureBox() {
  8236 + console.log('OnBodySystem chnaged is called outside ');
  8237 + var scope = angular.element(document.getElementById("daView")).scope();
  8238 + scope.$apply(function () {
  8239 + scope.enableShowHideStructureBox();
  8240 + });
  8241 +}
  8242 +
  8243 +function OnSearch() {
  8244 + console.log('Show Search is called outside ');
  8245 + var scope = angular.element(document.getElementById("daView")).scope();
  8246 + scope.$apply(function () {
  8247 + scope.ShowSearch();
  8248 + });
  8249 +}
  8250 +function selectTerm(event) {
  8251 + console.log('selectTerm is called outside ');
  8252 + var scope = angular.element(document.getElementById("daView")).scope();
  8253 + scope.$apply(function () {
  8254 + scope.jumpToTerm(event);
  8255 + });
  8256 +}
  8257 +function HighlightBodyOnListManager(event) {
  8258 + console.log('HighlightBodyOnListManager is called outside ');
  8259 + var scope = angular.element(document.getElementById("daView")).scope();
  8260 + scope.$apply(function () {
  8261 + scope.HighlightBodyOnListManagerSelection(event);
  8262 + });
  8263 +}
  8264 +
  8265 +function refreshTermListOnSystem(event) {
  8266 + console.log('refreshTermListOnSystem is called outside ');
  8267 + var scope = angular.element(document.getElementById("daView")).scope();
  8268 + scope.$apply(function () {
  8269 + scope.refreshTermListOnSystemSelection(event);
  8270 + });
  8271 +}
  8272 +
  8273 +function OnEnableExtract()
  8274 +{
  8275 + console.log('OnEnableExtract is called outside ');
  8276 + var scope = angular.element(document.getElementById("daView")).scope();
  8277 + scope.$apply(function () {
  8278 + scope.enableExtract('true');
  8279 + });
  8280 +}
  8281 +
  8282 +function onTboxCreation()
  8283 +{
  8284 + console.log('OnEnableExtract is called outside ');
  8285 + var scope = angular.element(document.getElementById("daView")).scope();
  8286 + scope.$apply(function () {
  8287 + scope.createTransparencyBox('true');
  8288 + });
  8289 +}
  8290 +
  8291 +function onTboxClose()
  8292 +{
  8293 + console.log('onTboxClose is called outside ');
  8294 + var scope = angular.element(document.getElementById("daView")).scope();
  8295 + scope.$apply(function () {
  8296 + scope.CloseTransparencyBox();
  8297 + });
  8298 +}
  8299 +
  8300 +function OnEnableNormalMode()
  8301 +{
  8302 + console.log('OnEnableNormalMode is called outside ');
  8303 + var scope = angular.element(document.getElementById("daView")).scope();
  8304 + scope.$apply(function () {
  8305 + scope.enableNormalMode();
  8306 + });
  8307 +}
  8308 +
  8309 +function OnEnableHighlight() {
  8310 + console.log('OnEnableHighlight is called outside ');
  8311 + var scope = angular.element(document.getElementById("daView")).scope();
  8312 + scope.$apply(function () {
  8313 + scope.enableHighlight();
  8314 + });
  8315 +}
  8316 +
  8317 +function OnIdentityClick() {
  8318 + console.log('OnIdentityClick is called outside ');
  8319 + var scope = angular.element(document.getElementById("daView")).scope();
  8320 + scope.$apply(function () {
  8321 + scope.IdentityClick();
  8322 + });
  8323 +}
  8324 +
  8325 +function OnZoom()
  8326 +{
  8327 + console.log('OnZoom is called outside ');
  8328 + var scope = angular.element(document.getElementById("daView")).scope();
  8329 + scope.$apply(function () {
  8330 + scope.enableZoom();
  8331 + });
  8332 +}
7758 8333 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
... ... @@ -90,15 +90,15 @@ AIA.controller(&quot;HomeController&quot;, [&quot;$rootScope&quot;, &quot;Modules&quot;, &quot;$log&quot;, &quot;$location&quot;,
90 90 }
91 91 }
92 92  
93   - $rootScope.DrawLine = function () {
  93 + // $rootScope.DrawLine = function () {
94 94 //$rootScope.isIdetifyClicked = false;
95 95 //$rootScope.isDrawingToolSelected = true;
96 96 //$rootScope.isLineDrawSelecyed = true;
97   - $rootScope.shapeType = "Line";
  97 + // $rootScope.shapeType = "Line";
98 98 // alert($rootScope.shapeType);
99 99  
100 100  
101   - }
  101 + // }
102 102  
103 103 $rootScope.ClearIframe = function () {
104 104 if ($('#daImagePanel') != null)
... ... @@ -118,6 +118,10 @@ AIA.controller(&quot;HomeController&quot;, [&quot;$rootScope&quot;, &quot;Modules&quot;, &quot;$log&quot;, &quot;$location&quot;,
118 118  
119 119 //annotation tool custom events
120 120 $rootScope.ShowAnnotationWindow = function () {
  121 + //7904
  122 + $("#annotationToolBarOptions").addClass("active");
  123 + $("#annotationButton").addClass("active");
  124 +
121 125 $rootScope.isAnnotationWindowOpen = true;
122 126 $(".annotationTollbar").css("display", "block");
123 127 $rootScope.$broadcast('annotationToolEvent', true);
... ... @@ -126,8 +130,12 @@ AIA.controller(&quot;HomeController&quot;, [&quot;$rootScope&quot;, &quot;Modules&quot;, &quot;$log&quot;, &quot;$location&quot;,
126 130 }
127 131  
128 132 $rootScope.CloseAnnotationTool = function () {
129   - console.log('close')
  133 + console.log('close');
130 134 $('.btnCursor').removeClass('activebtncolor');
  135 + $("#annotationButton").removeClass("active");
  136 + $("#annotationToolBarOptions").removeClass("active");
  137 +
  138 +
131 139 $(".annotationTollbar").css("display", "none");
132 140 $rootScope.isAnnotationWindowClose = true;
133 141 $("#canvasPaint").css("display", "none");
... ... @@ -167,21 +175,28 @@ AIA.controller(&quot;HomeController&quot;, [&quot;$rootScope&quot;, &quot;Modules&quot;, &quot;$log&quot;, &quot;$location&quot;,
167 175  
168 176 //----Annotation Toolbar: Jcanvas-----
169 177  
170   - $rootScope.DrawLine = function (e) {
  178 + $rootScope.DrLine = function (e) {
171 179 $rootScope.setListManagerZindex = true;
  180 + $("#canvasPaint").css("display", "block");
  181 + $("#canvas").css("display", "block");
  182 +
172 183 $rootScope.switchCanvas();
173 184 $rootScope.shapeType = "Line";
174 185  
175 186  
176 187 $('.btnCursor').removeClass('activebtncolor');
177   - $(".btn-annotation").removeClass("activebtncolor");
178   - $(".btn-annotation-line").addClass("activebtncolor");
  188 + $(".btn-annotation").removeClass("activebtncolor");
  189 + $(".btn-annotation-line").addClass("activebtncolor");
179 190  
180 191  
181 192 }
182 193  
183 194  
184   - $rootScope.DrawPin = function (e) {
  195 + $rootScope.DrPin = function (e) {
  196 + $("#canvasPaint").css("display", "block");
  197 + $("#canvas").css("display", "block");
  198 +
  199 + $rootScope.switchCanvas();
185 200 $rootScope.switchCanvas();
186 201 $rootScope.setListManagerZindex = true;
187 202 $rootScope.shapeType = "Pin";
... ... @@ -348,6 +363,8 @@ AIA.controller(&quot;HomeController&quot;, [&quot;$rootScope&quot;, &quot;Modules&quot;, &quot;$log&quot;, &quot;$location&quot;,
348 363  
349 364 // $("#canvas").removeLayer("TextRect_" + $rootScope.resetTextRect).drawLayers();
350 365  
  366 + //Edit Shape Style popup should open at it's default position
  367 + $("#modeleditstyle").css({ "left": "0", "right": "0", "margin": "0 auto", "top":"70px"});
351 368  
352 369 }
353 370  
... ... @@ -364,10 +381,30 @@ AIA.controller(&quot;HomeController&quot;, [&quot;$rootScope&quot;, &quot;Modules&quot;, &quot;$log&quot;, &quot;$location&quot;,
364 381 };
365 382 }
366 383  
  384 +
  385 + $rootScope.enableEditShapeTooltip = function () {
  386 +
  387 + $("#edit-block").addClass("custom-tooltip-annotation");
  388 + $(".custom-tooltip-annotation").css('display', 'block');
  389 +
  390 + }
  391 +
  392 + $rootScope.disableEditShapeTooltip = function () {
  393 +
  394 + $(".custom-tooltip-annotation").css('display', 'none');
  395 + $("#edit-block").removeClass("custom-tooltip-annotation");
  396 +
  397 +
  398 + }
  399 +
  400 +
367 401 $rootScope.disableAnnotationToolBar = function () {
368 402  
369 403 document.getElementById('modelbackground').style.display = "none";
370 404 document.getElementById('modeleditstyle').style.display = "none";
  405 + //Edit Shape Style popup should open at it's default position
  406 + $("#modeleditstyle").css({"left":"0", "right":"0", "margin":"0 auto", "top":"70px"});
  407 +
371 408  
372 409 }
373 410  
... ... @@ -646,7 +683,16 @@ AIA.controller(&quot;HomeController&quot;, [&quot;$rootScope&quot;, &quot;Modules&quot;, &quot;$log&quot;, &quot;$location&quot;,
646 683 //localStorage.setItem("globalModesty", $rootScope.globalSetting.modesty);
647 684  
648 685 //4.
649   - $rootScope.reloadChildController();
  686 + //$rootScope.reloadChildController();
  687 +
  688 + var len = $rootScope.openModules.length;
  689 + if (len > 0) {
  690 + $rootScope.reloadChildController();
  691 + }
  692 + else
  693 + {
  694 + $('#modal-settings').modal('hide');
  695 + }
650 696  
651 697 };
652 698  
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/3dA/3d-anatomy-details.html
1   -๏ปฟ
2   - <div class="bodyWrap row" ng-controller="3dAController">
3   - <div ng-include="aap/widget/MainMenu.html"></div>
4   - <div class="daBodyView" ng-init="open3dImageView()">
5   - <div class="col-sm-12 pageHeading">
6   - <!--<button type="button" class="btn btn-default pull-left toggleBar hidden-lg"> <i class="fa fa-bars"></i> </button>
7   - <div class=" pull-left toggleBar toggleHeadingButton" data-toggle="tooltip" data-placement="top" title="Show/Hide Sidebar"> <i class="fa fa-bars"></i> </div>-->
8   - <h4 class="pull-left">{{bodySystemTitle}}</h4>
9   - <div class="pull-right btn-group paddTop4"> <a href="#" class="btn btn-xs btn-default"><i class="fa fa-minus"></i></a> <a href="#" class="btn btn-xs btn-default"><i class="fa fa-clone"></i></a> <a href="#" ng-click="IsVisible()" class="btn btn-xs btn-default"><i class="fa fa-close"></i></a> </div>
10   - <div class="clearfix"></div>
11   - </div>
  1 +๏ปฟ<div class="bodyWrap row ">
  2 + <div ng-include="'app/widget/MainMenu.html'" />
  3 + <div class="bodyWrap row" ng-controller="3dAController">
  4 + <div ng-include="aap/widget/MainMenu.html"></div>
  5 + <div class="daBodyView" ng-init="open3dImageView()">
  6 + <div class="col-sm-12 pageHeading">
  7 + <!--<button type="button" class="btn btn-default pull-left toggleBar hidden-lg"> <i class="fa fa-bars"></i> </button>
  8 + <div class=" pull-left toggleBar toggleHeadingButton" data-toggle="tooltip" data-placement="top" title="Show/Hide Sidebar"> <i class="fa fa-bars"></i> </div>-->
  9 + <h4 class="pull-left">{{bodySystemTitle}}</h4>
  10 + <div class="pull-right btn-group paddTop4"> <a href="#" class="btn btn-xs btn-default"><i class="fa fa-minus"></i></a> <a href="#" class="btn btn-xs btn-default"><i class="fa fa-clone"></i></a> <a href="#" ng-click="IsVisible()" class="btn btn-xs btn-default"><i class="fa fa-close"></i></a> </div>
  11 + <div class="clearfix"></div>
  12 + </div>
12 13  
13   - <div class="col-sm-12">
14   - <div class="container-fluid main-full">
15   - <div class="row" style="padding-left:250px;">
16   - <object data="{{SelectedCAthumbImage}}" width="800" height="560" type="image/svg+xml"></object>
17   - <!--<object data="https://preview.biodigital.com/widget/?m=preview/v2_musculoskeletal_head_neck.json&amp;ui-all=true&amp;ui-tree=true&amp;uaid=f7n" width="600" height="500" type="image/svg+xml"></object>-->
18   - </div>
19   - </div>
20   - </div>
21   - </div>
22   -</div>
  14 + <div class="col-sm-12">
  15 + <div class="container-fluid main-full" style="margin-top: 93px !important;">
  16 + <div class="row" style="padding-left:203px;">
  17 + <object data="{{SelectedCAthumbImage}}" width="100%" height="800px" type="image/svg+xml"></object>
  18 + <!--<object data="https://preview.biodigital.com/widget/?m=preview/v2_musculoskeletal_head_neck.json&amp;ui-all=true&amp;ui-tree=true&amp;uaid=f7n" width="600" height="500" type="image/svg+xml"></object>-->
  19 + </div>
  20 + </div>
  21 + </div>
  22 + </div>
  23 + </div>
23 24  
  25 +</div>
24 26 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/ca/ca-view.html
... ... @@ -57,7 +57,7 @@
57 57 </tr>
58 58 </thead>
59 59 <tbody ng-if="!filterstring" class="clstbodyca">
60   - <tr id="{{item._id}}" ng-click="showItem(item._id)" ng-dblclick="openView($event)" ng-repeat="item in selectedCAlistViewData">
  60 + <tr id="{{item._id}}" ng-click="showItem(item._id)" ng-dblclick="openView($event)" ng-repeat="item in selectedCAListViewData">
61 61 <td style="max-width: 250px;">
62 62 {{item._Title}}
63 63 </td>
... ... @@ -73,7 +73,7 @@
73 73 </tr>
74 74 </tbody>
75 75 <tbody ng-if="filterstring" class="clstbody">
76   - <tr ng-click="showItem(item._id)" ng-dblclick="openView($event)" ng-repeat="item in searchCAlistViewData">
  76 + <tr ng-click="showItem(item._id)" ng-dblclick="openView($event)" ng-repeat="item in searchCAListViewData">
77 77 <td style="max-width: 250px;">
78 78 {{item._Title}}
79 79 </td>
... ... @@ -87,6 +87,9 @@
87 87 {{item._MedicalSpecialty}}
88 88 </td>
89 89 </tr>
  90 + <tr ng-if="typeof(searchCAListViewData) == 'undefined' || searchCAListViewData == null || searchCAListViewData == ''">
  91 + <td colspan="3"><strong style="color:black;">No animation found for the selected search criteria!</strong></td>
  92 + </tr>
90 93 </tbody>
91 94 </table>
92 95 </div>
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/ci/ci-view.html
... ... @@ -60,7 +60,7 @@
60 60 <div class="row tab-content" style="padding-left:25px; width:99%">
61 61  
62 62 <div role="tabpanel" class="tab-pane active" id="grid-view">
63   - <!--<div ng-if="!filterstring" ng-repeat="item in selectedCIlistViewData">
  63 + <!--<div ng-if="!filterstring" ng-repeat="item in selectedCIListViewData">
64 64 <div id="{{item._id}}" class="col-sm-3 col-lg-2" title="{{item._Title}}" data-ng-click="openView($event)">
65 65 <div class="thumbnail">
66 66 <img ng-src="~ /../content/images/ci/thumbnails/{{item._ThumbnailImage}}" alt="" title="">
... ... @@ -71,7 +71,7 @@
71 71 </div>
72 72 </div>
73 73  
74   - <div ng-if="filterstring" ng-repeat="item in searchCIlistViewData">
  74 + <div ng-if="filterstring" ng-repeat="item in searchCIListViewData">
75 75 <div id="{{item._id}}" class="col-sm-3 col-lg-2" title="{{item._Title}}" data-ng-click="openView($event)">
76 76 <div class="thumbnail">
77 77 <img ng-src="~ /../content/images/ci/thumbnails/{{item._ThumbnailImage}}" alt="" title="">
... ... @@ -91,57 +91,60 @@
91 91 <table class="table table-hover table-fixed bg-white table-txt12" style="padding-left:25px; width:100%;">
92 92 <thead class="clsthead">
93 93 <tr class="active">
94   - <th>Title</th>
95   - <th>Region</th>
96   - <th>System</th>
97   - <th>View</th>
98   - <th>Type</th>
99   - <th>Specialty</th>
  94 + <th width="15%">Title</th>
  95 + <th width="15%">Region</th>
  96 + <th width="15%">System</th>
  97 + <th width="15%">View</th>
  98 + <th width="15%">Type</th>
  99 + <th width="25%">Specialty</th>
100 100 </tr>
101 101 </thead>
102 102 <tbody ng-if="!filterstring" class="clstbody">
103   - <tr id="{{item._id}}" ng-click="showItem(item._id)" ng-dblclick="openView($event)" ng-repeat="item in selectedCIlistViewData">
104   - <td>
  103 + <tr id="{{item._id}}" ng-click="showItem(item._id)" ng-dblclick="openView($event)" ng-repeat="item in selectedCIListViewData">
  104 + <td width="15%">
105 105 {{item._Title}}
106 106 </td>
107   - <td>
  107 + <td width="15%">
108 108 {{item._BodyRegion}}
109 109 </td>
110   - <td>
  110 + <td width="15%">
111 111 {{item._BodySystem}}
112 112 </td>
113   - <td>
  113 + <td width="15%">
114 114 {{item._ViewOrientation}}
115 115 </td>
116   - <td>
  116 + <td width="15%">
117 117 {{item._ImageType}}
118 118 </td>
119   - <td>
  119 + <td width="25%">
120 120 {{item._MedicalSpecialty}}
121 121 </td>
122 122 </tr>
123 123 </tbody>
124 124 <tbody ng-if="filterstring" class="clstbody">
125   - <tr ng-click="showItem(item._id)" ng-dblclick="openView($event)" ng-repeat="item in searchCIlistViewData">
126   - <td>
  125 + <tr ng-click="showItem(item._id)" ng-dblclick="openView($event)" ng-repeat="item in searchCIListViewData">
  126 + <td width="15%">
127 127 {{item._Title}}
128 128 </td>
129   - <td>
  129 + <td width="15%">
130 130 {{item._BodyRegion}}
131 131 </td>
132   - <td>
  132 + <td width="15%">
133 133 {{item._BodySystem}}
134 134 </td>
135   - <td>
  135 + <td width="15%">
136 136 {{item._ViewOrientation}}
137 137 </td>
138   - <td>
  138 + <td width="15%">
139 139 {{item._ImageType}}
140 140 </td>
141   - <td>
  141 + <td width="25%">
142 142 {{item._MedicalSpecialty}}
143 143 </td>
144 144 </tr>
  145 + <tr ng-if="typeof(searchCIListViewData) == 'undefined' || searchCIListViewData == null || searchCIListViewData == ''">
  146 + <td colspan="6"><strong style="color:black;">No illustration found for the selected search criteria!</strong></td>
  147 + </tr>
145 148 </tbody>
146 149 </table>
147 150 </div>
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/da/da-view.html
... ... @@ -54,10 +54,11 @@
54 54 .tooltip-custom + .tooltip > .tooltip-arrow {
55 55 display: none;
56 56 }
  57 +
57 58 .customTooltip {
58 59 background: #333 !important;
59 60 color: #fff !important;
60   - opacity: 0.9 !important;
  61 + /*opacity: 0.9 !important;*/
61 62 }
62 63  
63 64  
... ... @@ -68,7 +69,7 @@
68 69 border: 0 none;
69 70 color: #fff !important;
70 71 left: -52px;
71   - opacity: 0.9;
  72 + /*opacity: 0.9;*/
72 73 padding: 7px;
73 74 position: absolute;
74 75 text-align: center;
... ... @@ -86,7 +87,7 @@
86 87 border: 0 none;
87 88 color: #fff !important;
88 89 left: 52px;
89   - opacity: 0.9;
  90 + /*opacity: 0.9;*/
90 91 padding: 7px;
91 92 position: absolute;
92 93 text-align: center;
... ... @@ -104,7 +105,7 @@
104 105 border: 0 none;
105 106 color: #fff !important;
106 107 right: 10px;
107   - opacity: 0.9;
  108 + /*opacity: 0.9;*/
108 109 padding: 7px;
109 110 position: absolute;
110 111 text-align: center;
... ... @@ -142,37 +143,37 @@
142 143 <div class="toggle-icon toggleBar toggleHeadingButton" title="Show/Hide Sidebar" style="top:20px;"></div>
143 144 <div class="" style="top:20px">
144 145 <div class="col-sm-6">
145   - <button id="btnIdentity" class="btn btn-primary btn-sm tooltip-custom" ng-click="OnIdentityClick()" data-toggle="tooltip" data-placement="bottom" title="Identify"> <img src="content/images/icon-identity.png" alt=""></button>
  146 + <button id="btnIdentity" onclick="OnIdentityClick()" class="btn btn-primary btn-sm tooltip-custom" data-toggle="tooltip" data-placement="bottom" title="Identify"> <img src="content/images/icon-identity.png" alt=""></button>
146 147 </div>
147 148 <div class="col-sm-6 pull-right">
148   - <button class="btn btn-black btn-sm pull-right tooltip-custom" ng-click="enableZoom()" data-toggle="tooltip" data-placement="bottom" title="Zoom-in/Zoom-out">
  149 + <button class="btn btn-black btn-sm pull-right tooltip-custom" onclick="OnZoom()" id="btnZoom" data-toggle="tooltip" data-placement="bottom" title="Zoom-in/Zoom-out">
149 150 <img src="content/images/icon-zoom.png" alt="">
150 151 </button>
151   -
  152 +
152 153 </div>
153 154 <div class="col-sm-12">
154   - <button id="btnTranparency" class="btn btn-black btn-sm btn-block marginTop5 tooltip-custom" ng-click="createTransparencyBox()" data-toggle="tooltip" data-placement="bottom" title="Transparency Box"><img src="content/images/icon-transparency.png" alt=""></button>
  155 + <button id="btnTranparency" class="btn btn-black btn-sm btn-block marginTop5 tooltip-custom" onclick="onTboxCreation()" data-toggle="tooltip" data-placement="bottom" title="Transparency Box"><img src="content/images/icon-transparency.png" alt=""></button>
155 156 </div>
156   -
157   -
  157 +
  158 +
158 159 <div class="col-sm-6">
159   - <button id="btnNormalMode" class="btn btn-primary btn-sm marginTop5 tooltip-custom" ng-click="enableNormalMode()" data-toggle="tooltip" data-placement="bottom" title="Normal"> <img src="content/images/bulb1.png" alt=""></button>
  160 + <button id="btnNormalMode" class="btn btn-primary btn-sm marginTop5 tooltip-custom" onclick="OnEnableNormalMode()" data-toggle="tooltip" data-placement="bottom" title="Normal"> <img src="content/images/bulb1.png" alt=""></button>
160 161 </div>
161 162 <div class="col-sm-6">
162   - <button id="btnExtract" class="btn btn-black btn-sm pull-right marginTop5 tooltip-custom" ng-click="enableExtract()" data-toggle="tooltip" data-placement="bottom" title="Extract"><img src="content/images/bulb1.png" alt=""></button>
  163 + <button id="btnExtract" class="btn btn-black btn-sm pull-right marginTop5 tooltip-custom" onclick="OnEnableExtract()" data-toggle="tooltip" data-placement="bottom" title="Extract"><img src="content/images/bulb1.png" alt=""></button>
163 164 </div>
164   -
  165 +
165 166 <div class="col-sm-6">
166   - <button id="btnHighLight" class="btn btn-black btn-sm marginTop5 tooltip-custom btn-resize" ng-click="enableHighlight()" data-toggle="tooltip" data-placement="bottom" title="Highlight"> <img src="content/images/bulb.png" alt=""></button>
  167 + <button id="btnHighLight" class="btn btn-black btn-sm marginTop5 tooltip-custom btn-resize" onclick="OnEnableHighlight()" data-toggle="tooltip" data-placement="bottom" title="Highlight"> <img src="content/images/bulb.png" alt=""></button>
167 168 </div>
168   -
  169 +
169 170 <div class="col-sm-6 dropdown hover-tool">
170 171 <div class="custom-tooltip">Highlight Options</div>
171 172 <button class="btn btn-black btn-sm pull-right marginTop5 dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true" ng-click="LoadBodySystemData()"><img src="content/images/icon-highlight.png" alt="" title=""></button>
172 173 <ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
173 174 <li ng-class="CurrentStructure"><a href="#" title="Current Structure">Current Structure</a></li>
174 175 <li role="separator" class="divider"></li>
175   - <li ng-class="Cardiovascular"><a href="#" title="Cardiovascular" id="1" ng-click="HighlightBodyByBodySystem($event)">Cardiovascular</a></li>
  176 + <!--<li ng-class="Cardiovascular"><a href="#" title="Cardiovascular" id="1" ng-click="HighlightBodyByBodySystem($event)">Cardiovascular</a></li>
176 177 <li ng-class="Digestive"><a href="#" title="Digestive" id="2" ng-click="HighlightBodyByBodySystem($event)">Digestive</a></li>
177 178 <li ng-class="Endocrine"><a href="#" title="Endocrine" id="3" ng-click="HighlightBodyByBodySystem($event)">Endocrine</a></li>
178 179 <li ng-class="Immune"><a href="#" title="Immune" id="4" ng-click="HighlightBodyByBodySystem($event)">Immune</a></li>
... ... @@ -183,46 +184,97 @@
183 184 <li ng-class="Reproductive"><a href="#" title="Reproductive" id="9" ng-click="HighlightBodyByBodySystem($event)">Reproductive</a></li>
184 185 <li ng-class="Respiratory"><a href="#" title="Respiratory" id="10" ng-click="HighlightBodyByBodySystem($event)">Respiratory</a></li>
185 186 <li ng-class="Skeletal"><a href="#" title="Skeletal" id="11" ng-click="HighlightBodyByBodySystem($event)">Skeletal</a></li>
186   - <li ng-class="Urinary"><a href="#" title="Urinary" id="12" ng-click="HighlightBodyByBodySystem($event)">Urinary</a></li>
  187 + <li ng-class="Urinary"><a href="#" title="Urinary" id="12" ng-click="HighlightBodyByBodySystem($event)">Urinary</a></li>-->
  188 +
  189 + <li ng-class="Cardiovascular"><a href="#" title="Cardiovascular" id="1" onclick="OnBodySystemSelection(event)">Cardiovascular</a></li>
  190 + <li ng-class="Digestive"><a href="#" title="Digestive" id="2" onclick="OnBodySystemSelection(event)">Digestive</a></li>
  191 + <li ng-class="Endocrine"><a href="#" title="Endocrine" id="3" onclick="OnBodySystemSelection(event)">Endocrine</a></li>
  192 + <li ng-class="Immune"><a href="#" title="Immune" id="4" onclick="OnBodySystemSelection(event)">Immune</a></li>
  193 + <li ng-class="Integumentary"><a href="#" title="Integumentary" id="5" onclick="OnBodySystemSelection(event)">Integumentary</a></li>
  194 + <li ng-class="Lymphatic"><a href="#" title="Lymphatic" id="6" onclick="OnBodySystemSelection(event)">Lymphatic</a></li>
  195 + <li ng-class="Muscular"><a href="#" title="Muscular" id="7" onclick="OnBodySystemSelection(event)">Muscular</a></li>
  196 + <li ng-class="Nervous"><a href="#" title="Nervous" id="8" onclick="OnBodySystemSelection(event)">Nervous</a></li>
  197 + <li ng-class="Reproductive"><a href="#" title="Reproductive" id="9" onclick="OnBodySystemSelection(event)">Reproductive</a></li>
  198 + <li ng-class="Respiratory"><a href="#" title="Respiratory" id="10" onclick="OnBodySystemSelection(event)">Respiratory</a></li>
  199 + <li ng-class="Skeletal"><a href="#" title="Skeletal" id="11" onclick="OnBodySystemSelection(event)">Skeletal</a></li>
  200 + <li ng-class="Urinary"><a href="#" title="Urinary" id="12" onclick="OnBodySystemSelection(event)">Urinary</a></li>
187 201 </ul>
188 202 </div>
189 203  
190   -
  204 +
191 205 <div class="col-sm-6 hover-gender-tool" ng-init="switchGender()">
192 206 <div class=" custom-tooltip1">Gender</div>
193 207 <button class="btn btn-black btn-sm marginTop5 dropdown-toggle" type="button" id="dropdownMenu4" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <i class=" fa fa-intersex font16"></i></button>
194 208 <ul class="dropdown-menu" aria-labelledby="dropdownMenu3">
195   - <li ng-class="male"><a href="#" title="Male" ng-click="OnGenderChange($event)">Male</a></li>
196   - <li ng-class="female"><a href="#" title="Female" ng-click="OnGenderChange($event)">Female</a></li>
  209 + <li ng-class="male">
  210 + <!--<button type="button" id="btnMale" onclick="OnGenderChange('Male')" class="btn btn-link" >Male</button>-->
  211 + <a href="#" title="Male" onclick="OnGenderChange(event)">Male</a>
  212 + </li>
  213 + <li ng-class="female">
  214 +
  215 + <!--<button type="button" id="btnFemale" onclick="OnGenderChange('Female')" class="btn btn-link">Female</button>-->
  216 + <a href="#" title="Female" onclick="OnGenderChange(event)">Female</a>
  217 +
  218 + <!--<a href="javascript:void(0)" title="Male" ng-click="OnGenderChange($event)">Male</a></li>
  219 + <li ng-class="female"><a href="javascript:void(0)" title="Female" ng-click="OnGenderChange($event)">Female</a></li>-->
  220 + </li>
197 221 </ul>
198 222 </div>
199 223  
200   -
201   -
202   -
203 224 <div class="col-sm-6 tooltip-View-custom">
204 225 <div class="custom-tooltip2">View</div>
205 226 <button class="btn btn-black btn-sm pull-right marginTop5 dropdown-toggle" type="button" id="dropdownMenu3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"><img src="content/images/view.png" alt="" title=""></button>
206 227 <ul class="dropdown-menu" aria-labelledby="dropdownMenu3">
207   - <li ng-class="AnteriorView"><a href="#" title="Anterior" ng-click="OnViewChange($event)">Anterior</a></li>
  228 + <!--<li ng-class="AnteriorView"><a href="#" title="Anterior" ng-click="OnViewChange($event)">Anterior</a></li>
208 229 <li ng-class="LateralView"><a href="#" title="Lateral" ng-click="OnViewChange($event)">Lateral</a></li>
209 230 <li ng-class="MedialView"><a href="#" title="Medial" ng-click="OnViewChange($event)">Medial</a></li>
210 231 <li ng-class="PosteriorView"><a href="#" title="Posterior" ng-click="OnViewChange($event)">Posterior</a></li>
211 232 <li ng-class="LateralArmView"><a href="#" title="Lateral Arm" ng-click="OnViewChange($event)">Lateral Arm</a></li>
212   - <li ng-class="MedialArmView"><a href="#" title="Medial Arm" ng-click="OnViewChange($event)">Medial Arm</a></li>
  233 + <li ng-class="MedialArmView"><a href="#" title="Medial Arm" ng-click="OnViewChange($event)">Medial Arm</a></li>-->
  234 +
  235 + <li ng-class="AnteriorView"><a href="#" title="Anterior" onclick="OnViewChange(event)">Anterior</a></li>
  236 + <li ng-class="LateralView"><a href="#" title="Lateral" onclick="OnViewChange(event)">Lateral</a></li>
  237 + <li ng-class="MedialView"><a href="#" title="Medial" onclick="OnViewChange(event)">Medial</a></li>
  238 + <li ng-class="PosteriorView"><a href="#" title="Posterior" onclick="OnViewChange(event)">Posterior</a></li>
  239 + <li ng-class="LateralArmView"><a href="#" title="Lateral Arm" onclick="OnViewChange(event)">Lateral Arm</a></li>
  240 + <li ng-class="MedialArmView"><a href="#" title="Medial Arm" onclick="OnViewChange(event)">Medial Arm</a></li>
213 241 </ul>
214 242 </div>
215   -
  243 +
216 244  
217 245 <div class="col-sm-12">
218   - <button id="btnStrutureBox" ng-click="enableShowHideStructureBox()" class="btn btn-primary btn-sm marginTop5 btn-block tooltip-custom" data-toggle="tooltip" data-placement="bottom" title="Show/Hide Structure Name Boxes"> <img src="content/images/comment-box.png" alt=""></button>
  246 + <button id="btnStrutureBox" onclick="enableShowHideStructureBox()" class="btn btn-primary btn-sm marginTop5 btn-block tooltip-custom" data-toggle="tooltip" data-placement="bottom" title="Show/Hide Structure Name Boxes"> <img src="content/images/comment-box.png" alt=""></button>
219 247 </div>
220   -
  248 +
221 249 </div>
222 250 <div class="">
223   - <p>
  251 +
  252 +
  253 + <!--'x' button is displaying inside the input box in IE browser.-->
  254 + <div style="width:80px;margin:10px 0 0 15px;display:inline-block;">
  255 + <div style="width: 58px; float: left;">
  256 + <input type="text" class="form-control item" id="txtlayerNumber" value="0" ng-model="layerNumber" ng-keydown="LayerChangeBasedOnKeyPressed($event)" style="height:32px;border-radius:0;">
  257 + </div>
  258 + <div style="width: 22px; float: left;">
  259 + <div style="width: 100%; float: left; height: 16px;">
  260 + <button type="button" id="incrmntVal" ng-click="LayerChangeOnMouseUpDown($event)" class="btn btn-default" style="padding:0 5px;border-radius:0;font-size: 10px;vertical-align:top;">
  261 +
  262 + <img style="width:10px;height:10px;" src="~/../content/images/DA/angle-up.png" />
  263 + </button>
  264 + </div>
  265 + <div style="width: 100%; float: left; height: 16px;">
  266 + <button type="button" id="deccrmntVal" ng-click="LayerChangeOnMouseUpDown($event)" class="btn btn-default" style="padding:0 5px;border-radius:0;font-size: 10px;vertical-align:top;">
  267 + <img style="width:10px;height:10px;" src="~/../content/images/DA/angle-down.png" />
  268 + </button>
  269 + </div>
  270 + </div>
  271 +
  272 + </div>
  273 +
  274 +
  275 + <!--<p>
224 276 <input class="item" type="number" id="txtlayerNumber" value="0" step="1" min="0" style="width:80px; margin:10px 0 0 15px;" ng-model="layerNumber" ng-keydown="LayerChangeBasedOnKeyPressed($event)" ng-click="LayerChangeOnMouseUpDown($event)" />
225   - </p>
  277 + </p>-->
226 278 <div id="layerChangeSlider" style="height:140px;" class="vert_slider " ng-model="layerNumber"></div>
227 279 </div>
228 280 </div>
... ... @@ -233,14 +285,15 @@
233 285 <div class="">
234 286 <div class="input-group col-sm-8 col-xs-7 col-md-10 pull-left">
235 287  
236   - <input type="text" class="form-control input-sm pull-left" id="typedtermname" ng-blur="HideSearch()" ng-click="ShowSearch()" ng-dblclick="ShowSearch()" ng-model="searchFilter" ng-change="textChange(searchFilter)" placeholder="Search...">
  288 + <input type="text" class="form-control input-sm pull-left" id="typedtermname" ng-blur="HideSearch()" onclick="OnSearch()" ondblclick="OnSearch()" ng-model="searchFilter" ng-change="textChange(searchFilter)" placeholder="Search...">
237 289  
238 290 <div id="backdrop" ng-show="IsSearchVisible">
239 291 <div class="col-sm-12 col-xs-12 col-md-12 col-lg-12 pull-left">
240 292 <!--#Bug 6591-->
241 293 <ul id="termlistfilter" class="form-control dropdown-menu" style="height:90px;width:100%;overflow-y:scroll;position:absolute;display:none;z-index:1000;">
242 294 <li ng-repeat="item in VocabTermTxt| filter:{ _TermText: searchFilter}">
243   - <a id="{{item._ActualTermNumber}}" href="" ng-click="jumpToTerm($event)">{{item._TermText}}</a>
  295 + <!--<a id="{{item._ActualTermNumber}}" href="" ng-click="jumpToTerm($event)">{{item._TermText}}</a>-->
  296 + <a id="{{item._ActualTermNumber}}" href="" onclick="selectTerm(event)">{{item._TermText}}</a>
244 297 </li>
245 298 </ul>
246 299 </div>
... ... @@ -280,7 +333,7 @@
280 333 <div class="row">
281 334 <div id="canvasDiv" class="col-sm-12 img-thumbnail" align="center">
282 335 <canvas id="canvasPaint" ng-click="FreeStylePaint($event)" width="2277" height="3248" class="canvas-annotationStyle1"></canvas>
283   - <canvas id="canvas" ng-click="doClick($event)" width="2277" height="3248" class="canvas-annotationStyle"></canvas>
  336 + <canvas id="canvas" ng-click="BindCanvasDrawingListners($event)" width="2277" height="3248" class="canvas-annotationStyle"></canvas>
284 337 </div>
285 338 <!--<div id="canvasDiv" style=" width: 95% !important;top:0px;overflow:scroll;background-color:white;">-->
286 339 <!--<div id="daLoaderLabel">Loading....</div>-->
... ... @@ -334,7 +387,7 @@
334 387 <div>
335 388 <div>
336 389 <div class="modal-header annotation-modal-header">
337   - <button type="button" class="close" data-dismiss="modal" aria-label="Close" ng-click="CloseTransparencyBox()"><span aria-hidden="true">&times;</span></button>
  390 + <button id="btnTBoxClose" type="button" onclick="onTboxClose()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
338 391 <h4>Transparency</h4>
339 392 </div>
340 393 <div>
... ... @@ -362,6 +415,25 @@
362 415 });</script>
363 416 <script>
364 417 $(function () {
  418 +
  419 +
  420 + var regExp = /[0-9\.\,]/;
  421 + $('#txtlayerNumber').on('keydown keyup', function (e) {
  422 + var value = String.fromCharCode(e.which) || e.key;
  423 + // Only numbers, dots and commas
  424 + if (!regExp.test(value)
  425 + && e.which != 188 // ,
  426 + && e.which != 190 // .
  427 + && e.which != 8 // backspace
  428 + && e.which != 46 // delete
  429 + && (e.which < 37 // arrow keys
  430 + || e.which > 40)) {
  431 + e.preventDefault();
  432 + return false;
  433 + }
  434 + });
  435 +
  436 +
365 437 $("#layerChangeSlider").slider({
366 438 orientation: "vertical",
367 439 range: "max", // <--- needed...
... ...
400-SOURCECODE/AIAHTML5.Web/app/widget/TopMenu.html
... ... @@ -22,14 +22,18 @@
22 22 <li><a href="#">Print Priview</a></li>
23 23 </ul>
24 24 </li>
25   - <li><a href="#" data-toggle="modal" data-target=".bs-example-modal-sm" ng-click="ShowAnnotationWindow()">Annotation</a></li>
  25 + <!--#7904-->
  26 + <li><a href="#" data-toggle="modal" id="annotationButton" data-target=".bs-example-modal-sm" ng-click="ShowAnnotationWindow()">Annotation</a></li>
  27 +
26 28 <li class="dropdown">
27 29 <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Options<span class="caret"></span></a>
28 30 <ul class="dropdown-menu">
29 31 <!--<li><a href="#" ng-click="ShowListManager()">List Manager</a></li>-->
30 32  
31 33 <li><a href="#" ng-click="ShowListManager()">List Manager</a></li>
32   - <li><a href="#" ng-click="ShowAnnotationWindow()">Annotation Toolbar</a></li>
  34 + <!--#7904-->
  35 + <li><a href="#" id="annotationToolBarOptions" ng-click="ShowAnnotationWindow()">Annotation Toolbar</a></li>
  36 +
33 37 <li><a href="#">Add to Existing Curriculum</a></li>
34 38 <li><a data-toggle="modal" data-target="#modal-settings" class="cursor-pointer">Settings</a></li>
35 39 <li role="separator" class="divider"></li>
... ...
400-SOURCECODE/AIAHTML5.Web/content/data/json/ca/ca_dat_contentlist.json
... ... @@ -248,6 +248,7 @@
248 248 "_Video": "ca_vid_3392.flv",
249 249 "_ThumbnailImage": "ca_tni_3392.jpg",
250 250 "_BodySystem": "Reproductive",
  251 + "_BodyRegion": "None",
251 252 "_MedicalSpecialty": "Obstetrics and Gynecology (OB/GYN)",
252 253 "_Summary": "This animations shows the process of Intracytoplasmic sperm injection (ICSI), a procedure used to fertilize an egg cell outside of the body.",
253 254 "_LowerSummary": "Intracytoplasmic sperm injection, or ICSI, is a form of in vitro fertilization in which fertilization occurs outside of the body. First, egg cells are harvested and transferred to a special media in a laboratory dish. Within a few hours, a single sperm is injected through a fine needle into the center of an egg cell to aid in the process of fertilization. If successful, the cell will divide and form the beginning stages of an embryo. If necessary, the DNA of a single cell from an embryo may be checked to ensure that various genetic disorders are not present. Typically, several egg cells are harvested and fertilized at the same time then inserted back into the uterus to increase the chances that one will implant and develop into a successful pregnancy."
... ...
400-SOURCECODE/AIAHTML5.Web/content/data/json/ca/ca_dat_contentlist_mp4link.json
... ... @@ -248,6 +248,7 @@
248 248 "_Video": "http://aia5.adam.com/graphics/Multimedia/en/200061/200061.mp4",
249 249 "_ThumbnailImage": "ca_tni_3392.jpg",
250 250 "_BodySystem": "Reproductive",
  251 + "_BodyRegion": "None",
251 252 "_MedicalSpecialty": "Obstetrics and Gynecology (OB/GYN)",
252 253 "_Summary": "This animations shows the process of Intracytoplasmic sperm injection (ICSI), a procedure used to fertilize an egg cell outside of the body.",
253 254 "_LowerSummary": "Intracytoplasmic sperm injection, or ICSI, is a form of in vitro fertilization in which fertilization occurs outside of the body. <BodyRegion/><BodyRegion/>First, egg cells are harvested and transferred to a special media in a laboratory dish. Within a few hours, a single sperm is injected through a fine needle into the center of an egg cell to aid in the process of fertilization. If successful, the cell will divide and form the beginning stages of an embryo. If necessary, the DNA of a single cell from an embryo may be checked to ensure that various genetic disorders are not present. <BodyRegion/><BodyRegion/>Typically, several egg cells are harvested and fertilized at the same time then inserted back into the uterus to increase the chances that one will implant and develop into a successful pregnancy."
... ...
400-SOURCECODE/AIAHTML5.Web/content/data/json/le/qz_dat_sk.json
... ... @@ -93,16 +93,61 @@
93 93 "Title": "Drag the labels to the correct location on the image.",
94 94 "activityTitle": "Bones of Upper Limb",
95 95 "ImagePath":"SK-07.JPG",
96   - "OptionBox": [{"BoxName": "T1","topcoord":"35","leftcoord":"4","Answervalue":"","QuizText":""},{"BoxName": "T2","topcoord":"97","leftcoord":"4","Answervalue":"","QuizText":""},
97   - {"BoxName": "T3","topcoord":"198","leftcoord":"4","Answervalue":"","QuizText":""},{"BoxName": "T4","topcoord":"252","leftcoord":"4","Answervalue":"","QuizText":""},
98   - {"BoxName": "T5","topcoord":"16","leftcoord":"613","Answervalue":"","QuizText":""},{"BoxName": "T6","topcoord":"112","leftcoord":"613","Answervalue":"","QuizText":""},
99   - {"BoxName": "T7","topcoord":"169","leftcoord":"613","Answervalue":"","QuizText":""},{"BoxName": "T8","topcoord":"366","leftcoord":"613","Answervalue":"","QuizText":""}],
  96 + "OptionBox": [{"BoxName": "T1","topcoord":"20","leftcoord":"2","Answervalue":"","QuizText":""},{"BoxName": "T2","topcoord":"142","leftcoord":"2","Answervalue":"","QuizText":""},
  97 + {"BoxName": "T3","topcoord":"238","leftcoord":"2","Answervalue":"","QuizText":""},{"BoxName": "T4","topcoord":"347","leftcoord":"2","Answervalue":"","QuizText":""},
  98 + {"BoxName": "T5","topcoord":"38","leftcoord":"613","Answervalue":"","QuizText":""},{"BoxName": "T6","topcoord":"120","leftcoord":"613","Answervalue":"","QuizText":""},
  99 + {"BoxName": "T7","topcoord":"330","leftcoord":"613","Answervalue":"","QuizText":""},{"BoxName": "T8","topcoord":"366","leftcoord":"613","Answervalue":"","QuizText":""}],
100 100 "Options": [{"OptionNumber": "A","OptionTitle": "Ulna","textalign":"left"},{"OptionNumber": "B","OptionTitle": "Trochlea of humerus","textalign":"right"},
101 101 {"OptionNumber": "C","OptionTitle": "Radius","textalign":"left"},{"OptionNumber": "D","OptionTitle": "Capitulum of humerus","textalign":"left"},
102 102 {"OptionNumber": "E","OptionTitle": "Head of humerus","textalign":"left"},{"OptionNumber": "F","OptionTitle": "Acromion process of scapula","textalign":"right"},
103 103 {"OptionNumber": "G","OptionTitle": "Coracoid process of scapula","textalign":"right"},{"OptionNumber": "H","OptionTitle": "Clavicle","textalign":"right"}],
104 104 "correctResponse": [{"OptionBox": "T1","Answer": "A"},{"OptionBox": "T2","Answer": "H"},{"OptionBox": "T3","Answer": "E"},{"OptionBox": "T4","Answer": "G"},
105 105 {"OptionBox": "T5","Answer": "B"},{"OptionBox": "T6","Answer": "C"},{"OptionBox": "T7","Answer": "D"},{"OptionBox": "T8","Answer": "F"}]
  106 + },{
  107 + "Number": "8",
  108 + "Title": "Drag the labels to the correct location on the image.",
  109 + "activityTitle": "Bones of Forearm",
  110 + "ImagePath":"SK-08.JPG",
  111 + "OptionBox": [{"BoxName": "T1","topcoord":"68","leftcoord":"2","Answervalue":"","QuizText":""},{"BoxName": "T2","topcoord":"150","leftcoord":"2","Answervalue":"","QuizText":""},
  112 + {"BoxName": "T3","topcoord":"189","leftcoord":"2","Answervalue":"","QuizText":""},{"BoxName": "T4","topcoord":"337","leftcoord":"2","Answervalue":"","QuizText":""},
  113 + {"BoxName": "T5","topcoord":"12","leftcoord":"613","Answervalue":"","QuizText":""},{"BoxName": "T6","topcoord":"98","leftcoord":"613","Answervalue":"","QuizText":""},
  114 + {"BoxName": "T7","topcoord":"189","leftcoord":"613","Answervalue":"","QuizText":""},{"BoxName": "T8","topcoord":"336","leftcoord":"613","Answervalue":"","QuizText":""}],
  115 + "Options": [{"OptionNumber": "A","OptionTitle": "Styloid process of radius","textalign":"left"},{"OptionNumber": "B","OptionTitle": "Tuberosity of radius","textalign":"right"},
  116 + {"OptionNumber": "C","OptionTitle": "Head of radius","textalign":"left"},{"OptionNumber": "D","OptionTitle": "Coronoid process of ulna","textalign":"left"},
  117 + {"OptionNumber": "E","OptionTitle": "Tuberosity of ulna","textalign":"left"},{"OptionNumber": "F","OptionTitle": "Body of radius","textalign":"right"},
  118 + {"OptionNumber": "G","OptionTitle": "Body of ulna","textalign":"right"},{"OptionNumber": "H","OptionTitle": "Head of ulna","textalign":"right"}],
  119 + "correctResponse": [{"OptionBox": "T1","Answer": "C"},{"OptionBox": "T2","Answer": "B"},{"OptionBox": "T3","Answer": "F"},{"OptionBox": "T4","Answer": "A"},
  120 + {"OptionBox": "T5","Answer": "D"},{"OptionBox": "T6","Answer": "E"},{"OptionBox": "T7","Answer": "G"},{"OptionBox": "T8","Answer": "H"}]
  121 + },{
  122 + "Number": "9",
  123 + "Title": "Drag the labels to the correct location on the image.",
  124 + "activityTitle": "Bones of Hand I",
  125 + "ImagePath":"SK-09.JPG",
  126 + "OptionBox": [{"BoxName": "T1","topcoord":"10","leftcoord":"4","Answervalue":"","QuizText":""},{"BoxName": "T2","topcoord":"130","leftcoord":"4","Answervalue":"","QuizText":""},
  127 + {"BoxName": "T3","topcoord":"230","leftcoord":"4","Answervalue":"","QuizText":""},{"BoxName": "T4","topcoord":"287","leftcoord":"4","Answervalue":"","QuizText":""},
  128 + {"BoxName": "T5","topcoord":"24","leftcoord":"614","Answervalue":"","QuizText":""},{"BoxName": "T6","topcoord":"112","leftcoord":"614","Answervalue":"","QuizText":""},
  129 + {"BoxName": "T7","topcoord":"211","leftcoord":"614","Answervalue":"","QuizText":""},{"BoxName": "T8","topcoord":"260","leftcoord":"614","Answervalue":"","QuizText":""}],
  130 + "Options": [{"OptionNumber": "A","OptionTitle": "Trapezium","textalign":"left"},{"OptionNumber": "B","OptionTitle": "Lunate","textalign":"right"},
  131 + {"OptionNumber": "C","OptionTitle": "Capitate","textalign":"left"},{"OptionNumber": "D","OptionTitle": "Scaphoid","textalign":"left"},
  132 + {"OptionNumber": "E","OptionTitle": "Triquetral","textalign":"left"},{"OptionNumber": "F","OptionTitle": "Trapezoid","textalign":"right"},
  133 + {"OptionNumber": "G","OptionTitle": "Pisiform","textalign":"right"},{"OptionNumber": "H","OptionTitle": "Hamate","textalign":"right"}],
  134 + "correctResponse": [{"OptionBox": "T1","Answer": "D"},{"OptionBox": "T2","Answer": "C"},{"OptionBox": "T3","Answer": "A"},{"OptionBox": "T4","Answer": "F"},
  135 + {"OptionBox": "T5","Answer": "B"},{"OptionBox": "T6","Answer": "E"},{"OptionBox": "T7","Answer": "G"},{"OptionBox": "T8","Answer": "H"}]
  136 + },{
  137 + "Number": "10",
  138 + "Title": "Drag the labels to the correct location on the image.",
  139 + "activityTitle": "Bones of Hand II",
  140 + "ImagePath":"SK-10.JPG",
  141 + "OptionBox": [{"BoxName": "T1","topcoord":"10","leftcoord":"4","Answervalue":"","QuizText":""},{"BoxName": "T2","topcoord":"130","leftcoord":"4","Answervalue":"","QuizText":""},
  142 + {"BoxName": "T3","topcoord":"230","leftcoord":"4","Answervalue":"","QuizText":""},{"BoxName": "T4","topcoord":"287","leftcoord":"4","Answervalue":"","QuizText":""},
  143 + {"BoxName": "T5","topcoord":"24","leftcoord":"614","Answervalue":"","QuizText":""},{"BoxName": "T6","topcoord":"215","leftcoord":"614","Answervalue":"","QuizText":""},
  144 + {"BoxName": "T7","topcoord":"301","leftcoord":"614","Answervalue":"","QuizText":""},{"BoxName": "T8","topcoord":"392","leftcoord":"614","Answervalue":"","QuizText":""}],
  145 + "Options": [{"OptionNumber": "A","OptionTitle": "1st metacarpal","textalign":"left"},{"OptionNumber": "B","OptionTitle": "2nd metacarpal","textalign":"right"},
  146 + {"OptionNumber": "C","OptionTitle": "5th metacarpal","textalign":"left"},{"OptionNumber": "D","OptionTitle": "Proximal phalanx of thumb","textalign":"left"},
  147 + {"OptionNumber": "E","OptionTitle": "Distal phalanx of thumb","textalign":"left"},{"OptionNumber": "F","OptionTitle": "Proximal phalynx of finger","textalign":"right"},
  148 + {"OptionNumber": "G","OptionTitle": "Middle phalanx of finger","textalign":"right"},{"OptionNumber": "H","OptionTitle": "Distal phalanx of finger","textalign":"right"}],
  149 + "correctResponse": [{"OptionBox": "T1","Answer": "C"},{"OptionBox": "T2","Answer": "B"},{"OptionBox": "T3","Answer": "F"},{"OptionBox": "T4","Answer": "G"},
  150 + {"OptionBox": "T5","Answer": "A"},{"OptionBox": "T6","Answer": "D"},{"OptionBox": "T7","Answer": "E"},{"OptionBox": "T8","Answer": "H"}]
106 151 }]
107 152 }]
108 153 }
109 154 \ No newline at end of file
... ...
400-SOURCECODE/AIAHTML5.Web/content/images/DA/angle-down.png 0 โ†’ 100644

210 Bytes

400-SOURCECODE/AIAHTML5.Web/content/images/DA/angle-up.png 0 โ†’ 100644

313 Bytes

400-SOURCECODE/AIAHTML5.Web/index.html
1 1 ๏ปฟ<!DOCTYPE html>
2 2 <html lang="en" ng-cloak ng-app="AIA">
3 3 <head>
  4 + <!--<base href="/AIAHTML5/" />-->
4 5 <!--<base href="/AIA/" />-->
5 6 <base href="/" />
6 7 <meta charset="utf-8">
... ... @@ -21,7 +22,7 @@
21 22 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
22 23 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,800,700,600,400italic">
23 24  
24   - <link rel="styleSheet" href="themes/default/css/uigrid/ui-grid.min.css" />
  25 + <!--<link rel="styleSheet" href="themes/default/css/uigrid/ui-grid.min.css" />-->
25 26  
26 27 <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
27 28 <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
... ... @@ -40,6 +41,35 @@
40 41  
41 42 <!--Annotation Toolbar: Jcanvas-->
42 43 <style>
  44 +
  45 +
  46 + .ActiveFormattingButtonClass {
  47 + background-color: #1B92D0 !important;
  48 + }
  49 +
  50 + .Edittext-btn-css {
  51 + background: #4B4B4B;
  52 + padding: 4px;
  53 + cursor: pointer;
  54 + margin-right: 2px;
  55 + }
  56 +
  57 + /*.italic-btn-css {
  58 + background: #4B4B4B;
  59 + padding: 4px;
  60 + cursor: pointer;
  61 + margin-right: 2px;
  62 + }*/
  63 +
  64 + .underline-btn-css {
  65 + background: #4B4B4B;
  66 + padding: 4px;
  67 + cursor: pointer;
  68 + margin-right: 5px;
  69 + }
  70 +
  71 +
  72 +
43 73 .activebtncolor {
44 74 background-color: #1B92D0 !important;
45 75 border-color: #1B92D0 !important;
... ... @@ -75,6 +105,26 @@
75 105 color: #000;
76 106 border-radius: 0;
77 107 }
  108 +
  109 + /*7931*/
  110 + .custom-tooltip-annotation-edit {
  111 + background-color: #fff;
  112 + border: 0 none;
  113 + color: #000;
  114 + left: 80px;
  115 + opacity: 0.9;
  116 + padding: 3px 0;
  117 + position: absolute;
  118 + text-align: center;
  119 + bottom: 50px;
  120 + width: 120px;
  121 + display: none;
  122 + z-index: 10000;
  123 + border: 1px solid #000;
  124 + color: #000;
  125 + border-radius: 0;
  126 + }
  127 +
78 128 </style>
79 129  
80 130  
... ... @@ -432,12 +482,12 @@
432 482 <div class="" role="" aria-label="...">
433 483 <div class="" role="group" align="center">
434 484 <button type="button" class="btn btn-black-annotation btn-xs mrgnBtm5 btnCursor" data-toggle="tooltip" data-placement="top" title="Select Shapes(S)" ng-click="Cursor()"><img src="content/images/icon-identity.png" alt="" title=""></button>
435   - <button type="button" class="btn btn-black-annotation btn-xs mrgnBtm5 btn-annotation btn-annotation-pin" data-toggle="tooltip" data-placement="top" title="Draw Pin" ng-click="DrawPin($event)"><img src="content/images/draw-pin.png" alt="" title=""></button>
  485 + <button type="button" class="btn btn-black-annotation btn-xs mrgnBtm5 btn-annotation btn-annotation-pin" data-toggle="tooltip" data-placement="top" title="Draw Pin" ng-click="DrPin($event)"><img src="content/images/draw-pin.png" alt="" title=""></button>
436 486 <button type="button" class="btn btn-black-annotation btn-xs mrgnBtm5 btn-annotation btn-annotation-arrow" data-toggle="tooltip" data-placement="top" title="Draw Arrow" ng-click="DrawArrow($event)"><img src="content/images/draw-arrow.png" alt="" title=""></button>
437 487 <button type="button" class="btn btn-black-annotation btn-xs mrgnBtm5 btn-annotation btn-annotation-Text" data-toggle="tooltip" data-placement="top" title="Draw Text" ng-click="DrawText($event)"><img src="content/images/draw-text.png" alt="" title=""></button>
438 488 </div>
439 489 <div class="" role="group" align="center">
440   - <button type="button" class="btn btn-black-annotation btn-xs btn-annotation btn-annotation-line" data-toggle="tooltip" data-placement="top" title="Draw Line" ng-click="DrawLine($event)"><img src="content/images/draw-line.png" alt="" title=""></button>
  490 + <button type="button" class="btn btn-black-annotation btn-xs btn-annotation btn-annotation-line" data-toggle="tooltip" data-placement="top" title="Draw Line" ng-click="DrLine($event)"><img src="content/images/draw-line.png" alt="" title=""></button>
441 491 <button type="button" class="btn btn-black-annotation btn-xs btn-annotation btn-annotation-rectangle" data-toggle="tooltip" data-placement="top" title="Draw Rectangle" ng-click="DrawRectangle($event)"><img src="content/images/draw-rec.png" alt="" title=""></button>
442 492 <button type="button" class="btn btn-black-annotation btn-xs btn-annotation btn-annotation-circle" data-toggle="tooltip" data-placement="top" title="Draw Circle" ng-click="DrawCircle($event)"><img src="content/images/draw-cir.png" alt="" title=""></button>
443 493 <button type="button" class="btn btn-black-annotation btn-xs btn-annotation" data-toggle="tooltip" data-placement="top" title="Draw Polygon" ng-click="DrawPolygon($event)"><img src="content/images/draw-poly.png" alt="" title=""></button>
... ... @@ -445,14 +495,18 @@
445 495 </div>
446 496 </div>
447 497 <div class="well-popup well">
448   - <img src="content/images/blank-shape.jpg" alt="..." class="img-rounded img-responsive" ng-click="disableAnnotationtoolOnListManager||enableAnnotationToolBar()">
  498 + <!--#7931-->
  499 +
  500 + <div id="edit-block" style="display: none; font-size: 13px;">Edit Shape Style</div>
  501 + <img id="OnEdtShape" src="content/images/blank-shape.jpg" alt="..." class="img-rounded img-responsive" ng-click="disableAnnotationtoolOnListManager||enableAnnotationToolBar()">
  502 +
449 503 </div>
450 504 <div class="well well-popup">
451 505 <div class="" role="group" aria-label="...">
452 506 <div>
453 507 <button type="button" class="btn btn-primary btn-xs pull-left btn-annotation" id="paintLine" data-toggle="tooltip" data-placement="top" title="Paint" style="margin-right:1%;" ng-click="paintBrush()"><i class="fa fa-paint-brush"></i></button>
454 508 <button type="button" class="btn btn-primary btn-xs pull-left btn-annotation" data-toggle="tooltip" data-placement="top" title="Erase" ng-click="EraseDrawing()"><i class="fa fa-eraser"></i></button>&nbsp;
455   - <div class="marginL2 pull-left"><input type="number" id="amount-2" value="25" step="1" style="width:60px;"></div>&nbsp;
  509 + <div class="marginL2 pull-left"><input type="number" id="amount-2" step="1" style="width:60px;" min="1" max="60" oninput="Brushsize(this)"></div>&nbsp;
456 510 <div class="pull-left" style="width:45%; margin-left:2%;">
457 511 <div id="slider-range-min-2"></div>
458 512 </div>
... ... @@ -512,14 +566,14 @@
512 566 <option>72</option>
513 567 </select>
514 568 <span style="vertical-align:middle;">
515   - <span id="text-bold" style="background: #4B4B4B;padding:4px;cursor:pointer;margin-right:2px;">
  569 + <span id="text-bold" class="Edittext-btn-css">
516 570 <i aria-hidden="true" class="fa fa-bold" style="color: #fff"></i>
517 571 </span>
518   - <span id="text-italic" style="background: #4B4B4B; padding: 4px; cursor: pointer; margin-right: 2px;">
  572 + <span id="text-italic" class="Edittext-btn-css">
519 573 <i class="fa fa-italic" aria-hidden="true" style="color: #fff"></i>
520 574  
521 575 </span>
522   - <span id="text-underline" style="background: #4B4B4B; padding: 4px; cursor: pointer; margin-right: 5px;">
  576 + <span id="text-underline" class="underline-btn-css">
523 577 <i class="fa fa-underline" aria-hidden="true" style="color: #fff"></i>
524 578 </span>
525 579 </span>
... ... @@ -530,15 +584,15 @@
530 584 </div>
531 585  
532 586 <span style="vertical-align:middle;">
533   - <span id="text-left" style="background: #4B4B4B;padding:4px;cursor:pointer;margin-right:2px;">
  587 + <span id="text-left" class="Edittext-btn-css">
534 588 <i aria-hidden="true" class="fa fa-align-left" style="color: #fff"></i>
535 589 </span>
536   - <span id="text-center" style="background: #4B4B4B; padding: 4px; cursor: pointer; margin-right: 2px;">
  590 + <span id="text-center" class="Edittext-btn-css">
537 591 <i class="fa fa-align-center" aria-hidden="true" style="color: #fff"></i>
538 592  
539 593  
540 594 </span>
541   - <span id="text-right" style="background: #4B4B4B; padding: 4px; cursor: pointer; margin-right: 5px;">
  595 + <span id="text-right" class="underline-btn-css">
542 596 <i class="fa fa-align-right" aria-hidden="true" style="color: #fff"></i>
543 597  
544 598  
... ... @@ -680,7 +734,7 @@
680 734 <!--Edit Shape Modal-->
681 735  
682 736  
683   - <div class="modeleditstyle" id="modeleditstyle" style="z-index: 1000000000; background: white; height: 433px; width: 302px;position:absolute;left:40%;top:70px;">
  737 + <div class="modeleditstyle" id="modeleditstyle" style="z-index: 1000000000; background: white; height: 433px; width: 302px;position:absolute;left:0;right:0;top:70px;margin: 0 auto;">
684 738 <div class="modal-content">
685 739 <div class="modal-header annotation-modal-header">
686 740 <h4 class="modal-title" id="myModalLabel33">Edit Shape Style</h4>
... ... @@ -1008,6 +1062,27 @@
1008 1062 div.style.display = 'block';
1009 1063 }
1010 1064 </script>
  1065 + <script>
  1066 + function Brushsize(object) {
  1067 +
  1068 + if (parseInt(object.value) == 0) {
  1069 + //object.value = 0;
  1070 + object.value = object.value.slice(0, 0);
  1071 +
  1072 + }
  1073 +
  1074 + if (parseInt(object.value) <= parseInt(object.max)) {
  1075 +
  1076 + object.value = object.value;
  1077 +
  1078 +
  1079 + }
  1080 + else {
  1081 + object.value = object.value.slice(0, 1);
  1082 +
  1083 + }
  1084 + }
  1085 + </script>
1011 1086  
1012 1087  
1013 1088 <!--<script src="libs/jquery/1.11.3/jquery.min.js"></script>-->
... ... @@ -1055,7 +1130,7 @@
1055 1130  
1056 1131 <script src="libs/jquery/jquery_plugin/color-picker/jquery.minicolors.min.js"></script>
1057 1132 <!--<script src="libs/colorpicker/jquery.minicolors.min.js"></script>-->
1058   - <script src="libs/color-picker/jquery.minicolors.min.js"></script>
  1133 + <!--<script src="libs/color-picker/jquery.minicolors.min.js"></script>-->
1059 1134  
1060 1135 <script src="libs/sketch.js"></script>
1061 1136 <!--<script type="text/javascript">
... ... @@ -1161,41 +1236,83 @@
1161 1236  
1162 1237 $("#text-left").on('click', function () {
1163 1238  
  1239 + //Annotation: Formatting buttons color is not change when select.
  1240 +
  1241 + $("#text-center").removeClass("ActiveFormattingButtonClass");
  1242 + $("#text-right").removeClass("ActiveFormattingButtonClass");
  1243 + $("#text-left").addClass("ActiveFormattingButtonClass");
1164 1244 $("#text_area").css("text-align", "left");
1165 1245  
  1246 +
1166 1247 });
1167 1248  
1168 1249  
1169 1250 $("#text-center").on('click', function () {
1170 1251  
  1252 + //Annotation: Formatting buttons color is not change when select.
  1253 +
  1254 + $("#text-right").removeClass("ActiveFormattingButtonClass");
  1255 + $("#text-left").removeClass("ActiveFormattingButtonClass");
  1256 + $("#text-center").addClass("ActiveFormattingButtonClass");
1171 1257 $("#text_area").css("text-align", "center");
1172 1258  
  1259 +
1173 1260 });
1174 1261  
1175 1262  
1176 1263 $("#text-right").on('click', function () {
1177 1264  
1178   - $("#text_area").css("text-align", "right");
  1265 + //Annotation: Formatting buttons color is not change when select.
1179 1266  
  1267 + $("#text-left").removeClass("ActiveFormattingButtonClass");
  1268 + $("#text-center").removeClass("ActiveFormattingButtonClass");
  1269 + $("#text-right").addClass("ActiveFormattingButtonClass");
  1270 + $("#text_area").css("text-align", "right");
1180 1271 });
1181 1272  
1182 1273  
1183 1274 $("#text-bold").on('click', function () {
1184 1275  
1185   - $("#text_area").css("font-weight", "bold");
  1276 + //Annotation: Formatting buttons color is not change when select.
  1277 + $("#text-bold").toggleClass("ActiveFormattingButtonClass");
  1278 +
  1279 + if ($("#text-bold").hasClass("ActiveFormattingButtonClass")) {
  1280 + $("#text_area").css("font-weight", "bold");
  1281 + }
  1282 + else {
  1283 + $("#text_area").css("font-weight", "normal");
  1284 + }
  1285 +
1186 1286  
1187 1287 });
1188 1288  
1189 1289 $("#text-italic").on('click', function () {
1190 1290  
1191   - $("#text_area").css("font-style", "italic");
  1291 + //Annotation: Formatting buttons color is not change when select.
  1292 + $("#text-italic").toggleClass("ActiveFormattingButtonClass");
  1293 + if ($("#text-italic").hasClass("ActiveFormattingButtonClass")) {
  1294 + $("#text_area").css("font-style", "italic");
  1295 + }
  1296 + else {
  1297 + $("#text_area").css("font-style", "normal");
  1298 + }
  1299 +
1192 1300  
1193 1301 });
1194 1302  
1195 1303 $("#text-underline").on('click', function () {
1196 1304  
1197   - $("#text_area").css("text-decoration", "underline");
  1305 + //Annotation: Formatting buttons color is not change when select.
  1306 + $("#text-underline").toggleClass("ActiveFormattingButtonClass");
1198 1307  
  1308 + if ($("#text-underline").hasClass("ActiveFormattingButtonClass")) {
  1309 + $("#text_area").css("text-decoration", "underline");
  1310 + }
  1311 + else {
  1312 + $("#text_area").css("text-decoration", "none");
  1313 + }
  1314 +
  1315 +
1199 1316 });
1200 1317  
1201 1318  
... ... @@ -1370,6 +1487,17 @@
1370 1487 $("#draw-block").removeClass("custom-tooltip-annotation");
1371 1488 });
1372 1489  
  1490 + //#7931
  1491 + $("#OnEdtShape").on('mouseover', function () {
  1492 + $("#edit-block").addClass("custom-tooltip-annotation-edit");
  1493 + $(".custom-tooltip-annotation-edit").css('display', 'block');
  1494 +
  1495 + }).on('mouseout', function () {
  1496 +
  1497 + $(".custom-tooltip-annotation-edit").css('display', 'none');
  1498 + $("#edit-block").removeClass("custom-tooltip-annotation-edit");
  1499 + });
  1500 +
1373 1501 });
1374 1502 </script>
1375 1503  
... ...
400-SOURCECODE/AIAHTML5.Web/libs/jquery/jquery_plugin/jsPanel/jspanel/jquery.jspanel.js
... ... @@ -53,7 +53,8 @@ var jsPanel = {
53 53 device: (function () {
54 54 try {
55 55 var imported = document.createElement('script');
56   - imported.src = '//vendor/mobile-detect.js';
  56 + //imported.src = '//vendor/mobile-detect.js';
  57 + imported.src = '~/../libs/jquery/jquery_plugin/jsPanel/vendor/mobile-detect.js';
57 58 document.head.appendChild(imported);
58 59  
59 60 // requires "mobile-detect.js" to be loaded
... ...
400-SOURCECODE/AIAHTML5.Web/themes/default/css/bootstrap/3.3.6/jquery.minicolors.css.orig deleted
1   -.minicolors {
2   -<<<<<<< HEAD
3   - position: relative;
4   -}
5   -
6   -.minicolors-sprite {
7   - background-image: url(data:image/png;base64,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);
8   -}
9   -
10   -.minicolors-no-data-uris .minicolors-sprite {
11   - background-image: url(jquery.minicolors.png);
12   -}
13   -
14   -.minicolors-swatch {
15   - position: absolute;
16   - vertical-align: middle;
17   - background-position: -80px 0;
18   - border: solid 1px #000;
19   - cursor: text;
20   - padding: 0;
21   - margin: 0;
22   - display: inline-block;
23   -}
24   -
25   -.minicolors-swatch-color {
26   - position: absolute;
27   - top: 0;
28   - left: 0;
29   - right: 0;
30   - bottom: 0;
31   -}
32   -
33   -.minicolors input[type=hidden] + .minicolors-swatch {
34   - width: 28px;
35   - position: static;
36   - cursor: pointer;
37   -}
38   -
39   -.minicolors input[type=hidden][disabled] + .minicolors-swatch {
40   - cursor: default;
41   -=======
42   - position: relative;
43   -}
44   -
45   -.minicolors-swatch {
46   - position: absolute;
47   - vertical-align: middle;
48   - background: url(jquery.minicolors.png) -80px 0;
49   - border: solid 1px #ccc;
50   - cursor: text;
51   - padding: 0;
52   - margin: 0;
53   - display: inline-block;
54   -}
55   -
56   -.minicolors-swatch-color {
57   - position: absolute;
58   - top: 0;
59   - left: 0;
60   - right: 0;
61   - bottom: 0;
62   -}
63   -
64   -.minicolors input[type=hidden] + .minicolors-swatch {
65   - width: 28px;
66   - position: static;
67   - cursor: pointer;
68   ->>>>>>> 2d9fb1ad353bdff092e5bc5a3986ece5adb763c0
69   -}
70   -
71   -/* Panel */
72   -.minicolors-panel {
73   -<<<<<<< HEAD
74   - position: absolute;
75   - width: 173px;
76   - height: 152px;
77   - background: white;
78   - border: solid 1px #CCC;
79   - box-shadow: 0 0 20px rgba(0, 0, 0, .2);
80   - z-index: 99999;
81   - box-sizing: content-box;
82   - display: none;
83   -}
84   -
85   -.minicolors-panel.minicolors-with-swatches {
86   - height: 182px;
87   -}
88   -
89   -.minicolors-panel.minicolors-visible {
90   - display: block;
91   -=======
92   - position: absolute;
93   - width: 173px;
94   - height: 152px;
95   - background: white;
96   - border: solid 1px #CCC;
97   - box-shadow: 0 0 20px rgba(0, 0, 0, .2);
98   - z-index: 99999;
99   - -moz-box-sizing: content-box;
100   - -webkit-box-sizing: content-box;
101   - box-sizing: content-box;
102   - display: none;
103   -}
104   -
105   -.minicolors-panel.minicolors-visible {
106   - display: block;
107   ->>>>>>> 2d9fb1ad353bdff092e5bc5a3986ece5adb763c0
108   -}
109   -
110   -/* Panel positioning */
111   -.minicolors-position-top .minicolors-panel {
112   -<<<<<<< HEAD
113   - top: -154px;
114   -}
115   -
116   -.minicolors-position-right .minicolors-panel {
117   - right: 0;
118   -}
119   -
120   -.minicolors-position-bottom .minicolors-panel {
121   - top: auto;
122   -}
123   -
124   -.minicolors-position-left .minicolors-panel {
125   - left: 0;
126   -}
127   -
128   -.minicolors-with-opacity .minicolors-panel {
129   - width: 194px;
130   -}
131   -
132   -.minicolors .minicolors-grid {
133   - position: absolute;
134   - top: 1px;
135   - left: 1px;
136   - width: 150px;
137   - height: 150px;
138   - background-position: -120px 0;
139   - cursor: crosshair;
140   -}
141   -
142   -.minicolors .minicolors-grid-inner {
143   - position: absolute;
144   - top: 0;
145   - left: 0;
146   - width: 150px;
147   - height: 150px;
148   -}
149   -
150   -.minicolors-slider-saturation .minicolors-grid {
151   - background-position: -420px 0;
152   -}
153   -
154   -.minicolors-slider-saturation .minicolors-grid-inner {
155   - background-position: -270px 0;
156   - background-image: inherit;
157   -}
158   -
159   -.minicolors-slider-brightness .minicolors-grid {
160   - background-position: -570px 0;
161   -}
162   -
163   -.minicolors-slider-brightness .minicolors-grid-inner {
164   - background-color: black;
165   -}
166   -
167   -.minicolors-slider-wheel .minicolors-grid {
168   - background-position: -720px 0;
169   -=======
170   - top: -154px;
171   -}
172   -
173   -.minicolors-position-right .minicolors-panel {
174   - right: 0;
175   -}
176   -
177   -.minicolors-position-bottom .minicolors-panel {
178   - top: auto;
179   -}
180   -
181   -.minicolors-position-left .minicolors-panel {
182   - left: 0;
183   -}
184   -
185   -.minicolors-with-opacity .minicolors-panel {
186   - width: 194px;
187   -}
188   -
189   -.minicolors .minicolors-grid {
190   - position: absolute;
191   - top: 1px;
192   - left: 1px;
193   - width: 150px;
194   - height: 150px;
195   - background: url(jquery.minicolors.png) -120px 0;
196   - cursor: crosshair;
197   -}
198   -
199   -.minicolors .minicolors-grid-inner {
200   - position: absolute;
201   - top: 0;
202   - left: 0;
203   - width: 150px;
204   - height: 150px;
205   - background: none;
206   -}
207   -
208   -.minicolors-slider-saturation .minicolors-grid {
209   - background-position: -420px 0;
210   -}
211   -
212   -.minicolors-slider-saturation .minicolors-grid-inner {
213   - background: url(jquery.minicolors.png) -270px 0;
214   -}
215   -
216   -.minicolors-slider-brightness .minicolors-grid {
217   - background-position: -570px 0;
218   -}
219   -
220   -.minicolors-slider-brightness .minicolors-grid-inner {
221   - background: black;
222   -}
223   -
224   -.minicolors-slider-wheel .minicolors-grid {
225   - background-position: -720px 0;
226   ->>>>>>> 2d9fb1ad353bdff092e5bc5a3986ece5adb763c0
227   -}
228   -
229   -.minicolors-slider,
230   -.minicolors-opacity-slider {
231   -<<<<<<< HEAD
232   - position: absolute;
233   - top: 1px;
234   - left: 152px;
235   - width: 20px;
236   - height: 150px;
237   - background-color: white;
238   - background-position: 0 0;
239   - cursor: row-resize;
240   -}
241   -
242   -.minicolors-slider-saturation .minicolors-slider {
243   - background-position: -60px 0;
244   -}
245   -
246   -.minicolors-slider-brightness .minicolors-slider {
247   - background-position: -20px 0;
248   -}
249   -
250   -.minicolors-slider-wheel .minicolors-slider {
251   - background-position: -20px 0;
252   -}
253   -
254   -.minicolors-opacity-slider {
255   - left: 173px;
256   - background-position: -40px 0;
257   - display: none;
258   -}
259   -
260   -.minicolors-with-opacity .minicolors-opacity-slider {
261   - display: block;
262   -=======
263   - position: absolute;
264   - top: 1px;
265   - left: 152px;
266   - width: 20px;
267   - height: 150px;
268   - background: white url(jquery.minicolors.png) 0 0;
269   - cursor: row-resize;
270   -}
271   -
272   -.minicolors-slider-saturation .minicolors-slider {
273   - background-position: -60px 0;
274   -}
275   -
276   -.minicolors-slider-brightness .minicolors-slider {
277   - background-position: -20px 0;
278   -}
279   -
280   -.minicolors-slider-wheel .minicolors-slider {
281   - background-position: -20px 0;
282   -}
283   -
284   -.minicolors-opacity-slider {
285   - left: 173px;
286   - background-position: -40px 0;
287   - display: none;
288   -}
289   -
290   -.minicolors-with-opacity .minicolors-opacity-slider {
291   - display: block;
292   ->>>>>>> 2d9fb1ad353bdff092e5bc5a3986ece5adb763c0
293   -}
294   -
295   -/* Pickers */
296   -.minicolors-grid .minicolors-picker {
297   -<<<<<<< HEAD
298   - position: absolute;
299   - top: 70px;
300   - left: 70px;
301   - width: 12px;
302   - height: 12px;
303   - border: solid 1px black;
304   - border-radius: 10px;
305   - margin-top: -6px;
306   - margin-left: -6px;
307   - background: none;
308   -}
309   -
310   -.minicolors-grid .minicolors-picker > div {
311   - position: absolute;
312   - top: 0;
313   - left: 0;
314   - width: 8px;
315   - height: 8px;
316   - border-radius: 8px;
317   - border: solid 2px white;
318   - box-sizing: content-box;
319   -}
320   -
321   -.minicolors-picker {
322   - position: absolute;
323   - top: 0;
324   - left: 0;
325   - width: 18px;
326   - height: 2px;
327   - background: white;
328   - border: solid 1px black;
329   - margin-top: -2px;
330   - box-sizing: content-box;
331   -}
332   -
333   -/* Swatches */
334   -.minicolors-swatches,.minicolors-swatches li {
335   - margin: 0;
336   - padding: 0;
337   - list-style: none;
338   - overflow: hidden;
339   - position: absolute;
340   - top: 157px;
341   - left: 5px;
342   -}
343   -
344   -.minicolors-swatches .minicolors-swatch {
345   - position: relative;
346   - float: left;
347   - cursor: pointer;
348   - margin:0 4px 0 0;
349   -}
350   -
351   -.minicolors-with-opacity .minicolors-swatches .minicolors-swatch {
352   - margin-right:7px;
353   -}
354   -
355   -.minicolors-swatch.selected {
356   - border-color:#000;
357   -=======
358   - position: absolute;
359   - top: 70px;
360   - left: 70px;
361   - width: 12px;
362   - height: 12px;
363   - border: solid 1px black;
364   - border-radius: 10px;
365   - margin-top: -6px;
366   - margin-left: -6px;
367   - background: none;
368   -}
369   -
370   -.minicolors-grid .minicolors-picker > div {
371   - position: absolute;
372   - top: 0;
373   - left: 0;
374   - width: 8px;
375   - height: 8px;
376   - border-radius: 8px;
377   - border: solid 2px white;
378   - -moz-box-sizing: content-box;
379   - -webkit-box-sizing: content-box;
380   - box-sizing: content-box;
381   -}
382   -
383   -.minicolors-picker {
384   - position: absolute;
385   - top: 0;
386   - left: 0;
387   - width: 18px;
388   - height: 2px;
389   - background: white;
390   - border: solid 1px black;
391   - margin-top: -2px;
392   - -moz-box-sizing: content-box;
393   - -webkit-box-sizing: content-box;
394   - box-sizing: content-box;
395   ->>>>>>> 2d9fb1ad353bdff092e5bc5a3986ece5adb763c0
396   -}
397   -
398   -/* Inline controls */
399   -.minicolors-inline {
400   -<<<<<<< HEAD
401   - display: inline-block;
402   -}
403   -
404   -.minicolors-inline .minicolors-input {
405   - display: none !important;
406   -}
407   -
408   -.minicolors-inline .minicolors-panel {
409   - position: relative;
410   - top: auto;
411   - left: auto;
412   - box-shadow: none;
413   - z-index: auto;
414   - display: inline-block;
415   -=======
416   - display: inline-block;
417   -}
418   -
419   -.minicolors-inline .minicolors-input {
420   - display: none !important;
421   -}
422   -
423   -.minicolors-inline .minicolors-panel {
424   - position: relative;
425   - top: auto;
426   - left: auto;
427   - box-shadow: none;
428   - z-index: auto;
429   - display: inline-block;
430   ->>>>>>> 2d9fb1ad353bdff092e5bc5a3986ece5adb763c0
431   -}
432   -
433   -/* Default theme */
434   -.minicolors-theme-default .minicolors-swatch {
435   -<<<<<<< HEAD
436   - top: 5px;
437   - left: 5px;
438   - width: 18px;
439   - height: 18px;
440   -}
441   -.minicolors-theme-default .minicolors-swatches .minicolors-swatch {
442   - top: 0;
443   - left: 0;
444   - width: 18px;
445   - height: 18px;
446   -}
447   -.minicolors-theme-default .minicolors-swatches {
448   - height: 20px;
449   -}
450   -.minicolors-theme-default.minicolors-position-right .minicolors-swatch {
451   - left: auto;
452   - right: 5px;
453   -}
454   -.minicolors-theme-default.minicolors {
455   - width: auto;
456   - display: inline-block;
457   -}
458   -.minicolors-theme-default .minicolors-input {
459   - height: 20px;
460   - width: auto;
461   - display: inline-block;
462   - padding-left: 26px;
463   -}
464   -.minicolors-theme-default.minicolors-position-right .minicolors-input {
465   - padding-right: 26px;
466   - padding-left: inherit;
467   -=======
468   - top: 5px;
469   - left: 5px;
470   - width: 18px;
471   - height: 18px;
472   -}
473   -.minicolors-theme-default.minicolors-position-right .minicolors-swatch {
474   - left: auto;
475   - right: 5px;
476   -}
477   -.minicolors-theme-default.minicolors {
478   - width: auto;
479   - display: inline-block;
480   -}
481   -.minicolors-theme-default .minicolors-input {
482   - height: 20px;
483   - width: auto;
484   - display: inline-block;
485   - padding-left: 26px;
486   -}
487   -.minicolors-theme-default.minicolors-position-right .minicolors-input {
488   - padding-right: 26px;
489   - padding-left: inherit;
490   ->>>>>>> 2d9fb1ad353bdff092e5bc5a3986ece5adb763c0
491   -}
492   -
493   -/* Bootstrap theme */
494   -.minicolors-theme-bootstrap .minicolors-swatch {
495   -<<<<<<< HEAD
496   - z-index: 2;
497   - width: 20px;
498   - height: 20px;
499   - cursor:pointer;
500   - position:absolute; right:-49px;
501   -}
502   -.minicolors-theme-bootstrap .minicolors-swatches .minicolors-swatch {
503   - top: 0;
504   - left: 0;
505   - width: 20px;
506   - height: 20px;
507   -}
508   -.minicolors-theme-bootstrap .minicolors-swatch-color {
509   - border-radius: inherit;
510   -}
511   -.minicolors-theme-bootstrap.minicolors-position-right .minicolors-swatch {
512   - left: auto;
513   - right: 3px;
514   -}
515   -.minicolors-theme-bootstrap .minicolors-input {
516   - float: none;
517   -
518   -}
519   -.minicolors-theme-bootstrap.minicolors-position-right .minicolors-input {
520   - padding-right: 44px;
521   - padding-left: 12px;
522   -}
523   -.minicolors-theme-bootstrap .minicolors-input.input-lg + .minicolors-swatch {
524   - top: 4px;
525   - left: 4px;
526   - width: 37px;
527   - height: 37px;
528   - border-radius: 5px;
529   -}
530   -.minicolors-theme-bootstrap .minicolors-input.input-sm + .minicolors-swatch {
531   - width: 24px;
532   - height: 24px;
533   -}
534   -.input-group .minicolors-theme-bootstrap:not(:first-child) .minicolors-input {
535   - border-top-left-radius: 0;
536   - border-bottom-left-radius: 0;
537   -}
538   -
539   -/* Semantic Ui theme */
540   -.minicolors-theme-semanticui .minicolors-swatch {
541   - top: 0;
542   - left: 0;
543   - padding: 18px;
544   -}
545   -.minicolors-theme-semanticui input {
546   - text-indent: 30px;
547   -}
548   -=======
549   - top: 3px;
550   - left: 3px;
551   - width: 28px;
552   - height: 28px;
553   - border-radius: 3px;
554   -}
555   -.minicolors-theme-bootstrap.minicolors-position-right .minicolors-swatch {
556   - left: auto;
557   - right: 3px;
558   -}
559   -.minicolors-theme-bootstrap .minicolors-input {
560   - padding-left: 44px;
561   -}
562   -.minicolors-theme-bootstrap.minicolors-position-right .minicolors-input {
563   - padding-right: 44px;
564   - padding-left: 12px;
565   -}
566   ->>>>>>> 2d9fb1ad353bdff092e5bc5a3986ece5adb763c0
400-SOURCECODE/AIAHTML5.Web/themes/default/css/bootstrap/3.3.6/jquery.minicolors.png.orig deleted
No preview for this file type
400-SOURCECODE/AIAHTML5.Web/themes/default/css/bootstrap/3.3.6/main.css
... ... @@ -523,9 +523,11 @@ footer.dark {
523 523 .navbar-inverse .navbar-nav > li > a {
524 524 color: #FFFFFF;
525 525 }
526   -.navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus {
  526 +/*#7904*/
  527 +.navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus, .navbar-nav > li > a.active {
527 528 color: #2db0f5;
528 529 }
  530 +
529 531 ul.right0 {
530 532 right: 0!important;
531 533 left: auto;
... ... @@ -667,6 +669,11 @@ textarea {
667 669 width: 100%;
668 670 float: right;
669 671 }
  672 +
  673 + .table-responsive > .table > tbody > tr > td
  674 + {
  675 + white-space: normal !important;
  676 + }
670 677 }
671 678  
672 679 @media (max-width: 1023px) {
... ... @@ -848,4 +855,6 @@ cursor:pointer;
848 855 .modeleditstyle
849 856 {
850 857 display:none;
851   -}
852 858 \ No newline at end of file
  859 +}
  860 + /*#7904*/
  861 +.dropdown-menu > li > a.active{background-color:#0095da;color:#fff;text-decoration:none;}
853 862 \ No newline at end of file
... ...