summaryrefslogtreecommitdiff
path: root/share/frontend/imgradient/js/colors_iframe.js
blob: 0a1e728639ec81ca335509d0d783837556133791 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//but I tool a procedural approach, and I wanted to make something more like OOP. just didn't know
//how do deal with the fact that $.fancybox is a class...a singleton class is totally fine. 
//like colorpicker_iframe. just need to know what it would look like 
//well in this case you might not need oop approach, as it doesn't solve any issues here. its fine to use procedural code then you
//don't need oop. also js is sort of using procedural way then asking to provide onclick code and other methods like .click() in jquery, 
//so it's kind of callback\procedural oriented, and oop doesn't fit in very well. you can wrap it in oop if really want, it will look like:
//
//function ColorPicker(){
//  this.element = $(".something");
//  this.init = function(){ 
//     this.options = options
//     this.element.click(this.onclick);
//     this.myfancybox = $.fancybox; 
//     this.myfancybox_iframe = ".fancybox-iframe";
//   }
//  this.onclick = function(){
//    this.myfancybox.open(
//     do I do something like this
//     _.extend({ autoDimensions: false,
//       autoDimensions: false,
//       beforeShow: this.fancybox_cb_1, //something like this? yes ok I think that it's the right thing for methods
//       to reach for these classes for trivial things for a while, so that I can used to thinking this way.
//       I understand that there are no real benefits performance/readability-wise here, but it's a different paradigm, 
//       right? yes ok cool. Well 
//        }, options) //? yep
//
//    this.options
//    ...
//    callback: funciton(){ this.color_picked = ...from fancybox .. }
//    callback: this.callback,
//    );
//  }
//  this.color_picked = function()
//  this.color_picked_as_hex = function()
//  this.color_picked_as_rgb = function()
//  this.callback = function(){
//   $(this.myfancybox_iframe). ....
//  }
//}
//and so on yeah good
//
function launch_iframe(input_target){
  $.fancybox.open({
    href : '/im/colors/index.html',
    width  : 1100,           // set the width
    height : 710,
    fitToView : true,
    autoDimensions:false,
    autoSize:false,
    type : 'iframe',
    closeBtn  : false,
    padding : 5,
    beforeShow : function(){					
      $('.fancybox-iframe').contents().find('#submitvalue').click(function(){
        $('.fancybox-iframe').contents().find('form').submit();						
        $.fancybox.close();
      });					
    },				
    beforeClose : function(){
      x = $('.fancybox-iframe').contents().find('#namespace').val();
    },
    afterClose: function(){
      $(input_target).val(x);
    }
  });
}
$(document).ready(function(){
 if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
   return;
 }
 var element_list = [".color1", ".color2"]
 element_list.forEach(
   function(l){
     console.log("a"+l)
     $("a"+l).click(function(event){ 
       event.preventDefault();
       launch_iframe("input"+l) 
     });
   }
 )
	
})