[dev] [commit] r986 - phplib templates/admin wwwbase/js wwwbase/styles
automailer at dexonline.ro
automailer at dexonline.ro
Mon Sep 16 20:32:25 EEST 2013
Author: cata
Date: Mon Sep 16 20:32:25 2013
New Revision: 986
Log:
Finish work on the window manager for lexemEdit.php. Finish TODO from r978.
* Load saved window positions if a cookie exists
* Remember which window has focus
* Add a link that resets the interface
Modified:
phplib/SmartyWrap.php
templates/admin/lexemEditActions.ihtml
wwwbase/js/lexemEdit.js
wwwbase/styles/lexemEdit.css
Modified: phplib/SmartyWrap.php
==============================================================================
--- phplib/SmartyWrap.php Sun Sep 15 20:21:16 2013 (r985)
+++ phplib/SmartyWrap.php Mon Sep 16 20:32:25 2013 (r986)
@@ -160,7 +160,7 @@
case 'paradigm': self::$cssFiles[10] = 'paradigm.css?v=1'; break;
case 'hangman': self::$cssFiles[11] = 'hangman.css?v=3'; break;
case 'mill': self::$cssFiles[12] = 'mill.css?v=2'; break;
- case 'lexemEdit': self::$cssFiles[13] = 'lexemEdit.css?v=4'; break;
+ case 'lexemEdit': self::$cssFiles[13] = 'lexemEdit.css?v=5'; break;
case 'jcrop': self::$cssFiles[14] = 'jquery.Jcrop.min.css?v=2'; break;
case 'easyui':
self::$cssFiles[15] = 'easyui/default/easyui.css?v=1';
@@ -198,7 +198,7 @@
case 'hangman': self::$jsFiles[15] = 'hangman.js?v=5'; break;
case 'mill': self::$jsFiles[16] = 'mill.js?v=3'; break;
case 'wotd': self::$jsFiles[17] = 'wotd.js?v=1';
- case 'lexemEdit': self::$jsFiles[18] = 'lexemEdit.js?v=5'; break;
+ case 'lexemEdit': self::$jsFiles[18] = 'lexemEdit.js?v=6'; break;
case 'jcrop': self::$jsFiles[19] = 'jquery.Jcrop.min.js?v=2'; break;
case 'easyui': self::$jsFiles[20] = 'jquery.easyui.min.js?v=1'; break;
case 'select2': self::$jsFiles[21] = 'select2.min.js?v=3'; break;
Modified: templates/admin/lexemEditActions.ihtml
==============================================================================
--- templates/admin/lexemEditActions.ihtml Sun Sep 15 20:21:16 2013 (r985)
+++ templates/admin/lexemEditActions.ihtml Mon Sep 16 20:32:25 2013 (r986)
@@ -34,4 +34,8 @@
<a href="?lexemId={$lexem->id}">renunță</a>
+
+ <div class="interfaceReset">
+ <a id="interfaceResetLink" href="#" title="resetează poziția ferestrelor">resetează interfața</a>
+ </div>
</div>
Modified: wwwbase/js/lexemEdit.js
==============================================================================
--- wwwbase/js/lexemEdit.js Sun Sep 15 20:21:16 2013 (r985)
+++ wwwbase/js/lexemEdit.js Mon Sep 16 20:32:25 2013 (r986)
@@ -1,4 +1,5 @@
-struct_anyChanges = false;
+var struct_anyChanges = false;
+var COOKIE_NAME = 'lexemEdit';
$.cookie.json = true;
function lexemEditInit() {
@@ -99,31 +100,7 @@
$('.mergeLexem').click(mergeLexemButtonClick);
$('.similarLink').click(similarLinkClick);
- var props = ['left', 'top', 'width', 'height'];
-
- $('.box').each(function() {
- var $w = $().WM('open');
- $w.find('.titlebartext').text($(this).attr('data-title'));
- $w.attr('data-id', $(this).attr('data-id'));
- for (var i = 0; i < props.length; i++) {
- if (typeof($(this).attr('data-' + props[i])) != 'undefined') {
- var value = parseInt($(this).attr('data-' + props[i]));
- if (props[i] == 'left') {
- value += parseInt($('#wmCanvas').offset().left);
- } else if (props[i] == 'top') {
- value += parseInt($('#wmCanvas').offset().top);
- }
- $w.css(props[i], value + 'px');
- }
- }
- if ($(this).attr('data-minimized')) {
- $w.WM('minimize');
- }
- $w.find('.windowcontent').append($(this).children());
- $('#wmCanvas').append($w);
- });
- $('.window.minimized').each(function() { $(this).WM('raise'); });
- $('#resizerproxy').mouseup(resizerSetCookie);
+ wmInit();
}
function sourceMatcher(term, text) {
@@ -395,9 +372,67 @@
});
}
-function resizerSetCookie() {
+// Initializes the window manager
+function wmInit() {
+ $('.box').each(function() {
+ // Convert each box to a window
+ var $w = $().WM('open');
+ $w.find('.titlebartext').text($(this).attr('data-title'));
+ $w.attr('data-id', $(this).attr('data-id'));
+ $w.find('.windowcontent').append($(this).children());
+ $('#wmCanvas').append($w);
+ });
+ wmSetCoordinates();
+
+ // Set some handlers for moving, resizing, and resetting the interface
+ $('#resizerproxy').mouseup(wmSetCookie);
+ $('#moverproxy').mouseup(wmSetCookie);
+ $('#interfaceResetLink').click(wmInterfaceReset);
+}
+
+// Sets the coordinates for each window based on the cookie (if available) or on HTML5 attributes of the original box
+function wmSetCoordinates() {
+ var props = ['left', 'top', 'width', 'height'];
+ var cookie = $.cookie(COOKIE_NAME);
+
+ $('.window').each(function() {
+ var id = $(this).attr('data-id');
+ if (cookie) {
+ for (var i = 0; i < props.length; i++) {
+ $(this).css(props[i], cookie[id][props[i]] + 'px');
+ }
+ if (cookie[id].minimized) {
+ $(this).WM('minimize');
+ }
+ } else {
+ // No cookie - load the corresponding box
+ var box = $('.box[data-id="' + id + '"]');
+ for (var i = 0; i < props.length; i++) {
+ if (typeof(box.attr('data-' + props[i])) != 'undefined') {
+ var value = parseInt(box.attr('data-' + props[i]));
+ if (props[i] == 'left') {
+ value += parseInt($('#wmCanvas').offset().left);
+ } else if (props[i] == 'top') {
+ value += parseInt($('#wmCanvas').offset().top);
+ }
+ $(this).css(props[i], value + 'px');
+ }
+ }
+ if (box.attr('data-minimized')) {
+ $(this).WM('minimize');
+ }
+ }
+ });
+ if (cookie) {
+ $('.window[data-id="' + cookie.focused + '"]').WM('raise');
+ } else {
+ // Raise minimized windows for clean interfaces, so that the users know they're there
+ $('.window.minimized').each(function() { $(this).WM('raise'); });
+ }
+}
+
+function wmSetCookie() {
var data = {};
- alert(data);
$('.window').each(function() {
var params = { minimized: $(this).hasClass('minimized') };
if (params.minimized) {
@@ -414,5 +449,12 @@
}
data[$(this).attr('data-id')] = params;
});
- $.cookie('lexemEdit', data, { expires: 365 });
+ data['focused'] = $('.window.focused').attr('data-id');
+ $.cookie(COOKIE_NAME, data, { expires: 365 });
+}
+
+function wmInterfaceReset() {
+ $.removeCookie(COOKIE_NAME);
+ wmSetCoordinates();
+ return false;
}
Modified: wwwbase/styles/lexemEdit.css
==============================================================================
--- wwwbase/styles/lexemEdit.css Sun Sep 15 20:21:16 2013 (r985)
+++ wwwbase/styles/lexemEdit.css Mon Sep 16 20:32:25 2013 (r986)
@@ -188,6 +188,11 @@
margin: 0px 0px;
}
+.interfaceReset {
+ float: right;
+ padding: 3px 10px;
+}
+
/* Window manager settings */
.titlebaricon {
display: none;
More information about the Dev
mailing list