PageSourceSearch

https://edicola.ilroma.net/roma/assets/js/areas/reader/regions.js?v=1

js ilroma.net collected 2026-10-02 07:08:16 UTC 3,719 bytes, 127 lines download raw bytes

1/*
2 * Class to read multimedia objects from webservice
3 */
4
5function Regions() {
6  var self = this;
7  var issueRegions = [];
8  var deletedRegions = [];
9  var _pagePrefix = "pag_";
10  var _regPrefix = "reg";
11
12
13  self.setRegions = function (regions) {
14    issueRegions = jQuery.extend(true, {}, regions);
15  };
16
17  /*
18  * @param page {Number}
19  * */
20  self.getExternalRegionsByPage = function (page) {
21    var regions = [];
22    for(var reg in issueRegions[_pagePrefix+page]){
23      if (issueRegions[_pagePrefix+page][reg].object == "externallink") {
24        regions.push(reg);
25      }
26    }
27    return regions;
28  }
29
30  self.getRegionsByPage = function (page) {
31    var regions = [];
32    for(var reg in issueRegions[_pagePrefix+page]){
33      if (issueRegions[_pagePrefix+page][reg].object != "externallink") {
34        regions.push(reg);
35      }
36    }
37    return regions;
38  }
39
40  /*
41  * @param reg {Number}
42  * @param page {Number}
43  * */
44  self.getRegion = function(reg, page) {
45    return issueRegions[_pagePrefix+page][reg];
46  };
47
48  self.getRegions = function() {
49    return issueRegions;
50  };
51
52  self.getDeletedRegions = function () {
53    return deletedRegions;
54  };
55
56  var regionCounter = 0;
57  self.addRegion = function(regionType, page, x, y, width, height) {
58    var newRegion={x: x, y: y, width: width, height: height, class: regionType, object: regionType, iconPosition: {x: 0, y: 0}, toSave: true};
59    var reg = --regionCounter;
60    if(!issueRegions[_pagePrefix+page]){
61      issueRegions[_pagePrefix+page] = {};
62    }
63    issueRegions[_pagePrefix+page][_regPrefix+reg] = newRegion;
64    return _regPrefix+reg;
65  };
66
67  self.updateRegionCoordinate = function(reg, page, x, y, width, height) {
68    if(issueRegions[_pagePrefix+page][reg]){
69      issueRegions[_pagePrefix+page][reg].x = x;
70      issueRegions[_pagePrefix+page][reg].y = y;
71      issueRegions[_pagePrefix+page][reg].width = width;
72      issueRegions[_pagePrefix+page][reg].height = height;
73      issueRegions[_pagePrefix+page][reg].toSave = true;
74    }
75  };
76
77  self.deleteRegion = function(reg, page, chkcontrol) {
78    if(chkcontrol){
79      deletedRegions.push(issueRegions[page][reg]);
80      delete issueRegions[page][reg];
81    }else{
82      deletedRegions.push(issueRegions[_pagePrefix+page][reg]);
83      delete issueRegions[_pagePrefix+page][reg];
84    }
85  };
86
87  self.deleteAllRegions = function() {
88    $.map(issueRegions,function(val,obj){
89      $.each(issueRegions[obj],function(key){
90        self.deleteRegion(key,obj,true);
91      });
92    });
93  };
94
95  self.convertPercent = function(element,parentElement) {
96    var param1=parseFloat(element); //.toFixed(15);
97    var param2=parseFloat(parentElement);//.toFixed(15);
98    return (param1/param2*100);
99  };
100
101  self.moveRegion = function(reg, page, newPage, left, top, pageWidth, pageHeight) {
102    var obj=jQuery.extend(true, {},issueRegions[_pagePrefix+page][reg]);
103    delete issueRegions[_pagePrefix+page][reg];
104
105    if (!issueRegions[_pagePrefix+newPage]) {
106      issueRegions[_pagePrefix+newPage] = {};
107    }
108
109    issueRegions[_pagePrefix+newPage][reg]=obj;
110    if(left && top && pageWidth && pageHeight){
111      if( newPage < page ){
112        issueRegions[_pagePrefix+newPage][reg].x = self.convertPercent(pageWidth - Math.abs(left), pageWidth);
113      }else{
114        issueRegions[_pagePrefix+newPage][reg].x = self.convertPercent(left - pageWidth, pageWidth);
115      }
116      issueRegions[_pagePrefix+newPage][reg].y = self.convertPercent(top, pageHeight);
117    }
118    issueRegions[_pagePrefix+newPage][reg].toSave=true;
119
120  };
121
122  self.saveIconPosition = function(reg, page, x, y) {
123    issueRegions[_pagePrefix+page][reg].iconPosition={y:y,x:x};
124    issueRegions[_pagePrefix+page][reg].toSave=true;
125  };
126
127};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.