source: trunk/plugins/ImageManager/assets/images.js @ 927

Last change on this file since 927 was 927, checked in by gogo, 11 years ago

Correction to reference to Xinha object/namespace in the ImageManager?.

  • Property svn:keywords set to LastChangedDate LastChangedRevision LastChangedBy HeadURL Id
File size: 3.8 KB
Line 
1/**
2 * Functions for the image listing, used by images.php only     
3 * @author $Author$
4 * @version $Id$
5 * @package ImageManager
6 */
7
8        function i18n(str) {
9        return Xinha._lc(str, 'ImageManager');
10        }
11
12        function changeDir(newDir)
13        {
14                showMessage('Loading');
15
16                // backend_url is defined in the calling page. For now we
17                // assume it has a trailing &
18
19                location.href = _backend_url + "__function=images&dir="+encodeURIComponent(newDir);
20        }
21
22
23        function newFolder(dir, newDir)
24        {
25                location.href = _backend_url + "__function=images&dir="+encodeURIComponent(dir)+"&newDir="+encodeURIComponent(newDir);
26        }
27
28        //update the dir list in the parent window.
29        function updateDir(newDir)
30        {
31                var selection = window.top.document.getElementById('dirPath');
32                if(selection)
33                {
34                        for(var i = 0; i < selection.length; i++)
35                        {
36                                var thisDir = selection.options[i].text;
37                                if(thisDir == newDir)
38                                {
39                                        selection.selectedIndex = i;
40                                        showMessage('Loading');
41                                        break;
42                                }
43                        }               
44                }
45        }
46
47        function selectImage(filename, alt, width, height)
48        {
49                var topDoc = window.top.document;
50               
51                var obj = topDoc.getElementById('f_url');  obj.value = filename;
52                var obj = topDoc.getElementById('f_width');  obj.value = width;
53                var obj = topDoc.getElementById('f_width'); obj.value = width;
54                var obj = topDoc.getElementById('f_height'); obj.value = height;
55                var obj = topDoc.getElementById('f_alt'); obj.value = alt;
56                var obj = topDoc.getElementById('orginal_width'); obj.value = width;
57                var obj = topDoc.getElementById('orginal_height'); obj.value = height;         
58    // Set preview for the selected
59    topDoc.getElementById('f_preview').src = window.parent._backend_url + '__function=thumbs&img=' + filename;
60   
61    update_selected();
62        }
63
64  var _current_selected = null;
65  function update_selected()
66  {
67    var topDoc = window.top.document;
68    if(_current_selected)
69    {
70      _current_selected.className = _current_selected.className.replace(/(^| )active( |$)/, '$1$2');
71      _current_selected = null;
72    }
73    // Grab the current file, and highlight it if we have it
74    var c_file = topDoc.getElementById('f_url').value;
75    var selection = topDoc.getElementById('dirPath');
76                var currentDir = selection.options[selection.selectedIndex].text;
77    var dRe = new RegExp('^(' + currentDir.replace(/([\/\^$*+?.()|{}[\]])/g, '\\$1') + ')([^/]*)$');
78    if(dRe.test(c_file))
79    {
80      var holder = document.getElementById('holder_' + asc2hex(RegExp.$2));
81      if(holder)
82      {
83        _current_selected = holder;
84        holder.className += ' active';
85      }
86    }
87  }
88
89  function asc2hex(str)
90  {
91    var hexstr = '';
92    for(var i = 0; i < str.length; i++)
93    {
94      var hex = (str.charCodeAt(i)).toString(16);
95      if(hex.length == 1) hex = '0' + hex;
96      hexstr += hex;
97    }
98    return hexstr;
99  }
100
101        function showMessage(newMessage)
102        {
103                var topDoc = window.top.document;
104
105                var message = topDoc.getElementById('message');
106                var messages = topDoc.getElementById('messages');
107                if(message && messages)
108                {
109                        if(message.firstChild)
110                                message.removeChild(message.firstChild);
111
112                        message.appendChild(topDoc.createTextNode(i18n(newMessage)));
113                       
114                        messages.style.display = "block";
115                }
116        }
117
118        function addEvent(obj, evType, fn)
119        {
120                if (obj.addEventListener) { obj.addEventListener(evType, fn, true); return true; }
121                else if (obj.attachEvent) {  var r = obj.attachEvent("on"+evType, fn);  return r;  }
122                else {  return false; }
123        }
124
125        function confirmDeleteFile(file)
126        {
127                if(confirm(i18n("Delete file?")))
128                        return true;
129       
130                return false;           
131        }
132
133        function confirmDeleteDir(dir, count)
134        {
135                if(count > 0)
136                {
137                        alert(i18n("Please delete all files/folders inside the folder you wish to delete first."));
138                        return;
139                }
140
141                if(confirm(i18n("Delete folder?")))
142                        return true;
143
144                return false;
145        }
146
147        addEvent(window, 'load', init);
148  Xinha = window.parent.Xinha;
Note: See TracBrowser for help on using the repository browser.