PageSourceSearch

https://amanha.com.br/plugins/system/t4/admin/assets/js/palettes_v2.js

js amanha.com.br collected 2026-09-24 20:57:39 UTC 13,430 bytes, 299 lines download raw bytes

1(function($){
2    "use strict";
3     var initPalettes = function(){
4        // Show edit popup with current palettes
5        var $plmodal = $('.t4-palettes-modal');
6        if (!$plmodal.parent().is('.themeConfigModal')) $plmodal.appendTo($('.themeConfigModal'));
7        var $plEdit = $('.pattern.active'),$data = $plEdit.data(),$data_color = {};
8        $plmodal.find('.config_pattern').find('.t4-pattern').each(function(){
9            $(this).parents('.controls').find('li').removeClass('active');
10            var data = $(this).data();
11            var attrName = $(this).data('attrname'), $value = "";
12            if(attrName != 'title'){
13                $data_color[attrName] = $data[attrName];
14                $value = $data[attrName];
15                if(!$value) $value = "#FFF";
16                $(this).val($value);
17                $(this).spectrum("set",$value);
18            }
19            if(attrName == 'title') $(this).val($data[attrName]);
20            $(this).data('val',$data[attrName]);
21        });
22        if(typeof $data_color == 'object'){
23            Object.keys($data_color).forEach( function(cls, index) {
24                initPalettePreview(cls,$data_color);
25            });
26        }
27        $('.error-name-exist').hide();
28        $('.error-title-null').hide();
29        // modal show
30        $plmodal.show();
31    }
32    var generatedPalettes = function(trigger){
33        var colorPattern = {},$pattern;
34        if(trigger){
35            $pattern = '.pattern';
36        }else{
37            $pattern = '.pattern.active';
38        }
39        $('.group_palette').find($pattern).not('.pattern-clone').each(function(index){
40            var dataColorPt = $(this).data();
41            colorPattern[dataColorPt.class] = dataColorPt;
42        });
43        return colorPattern;
44    }
45    var validationData = function() {
46        var allPalette = generatedPalettes(true);
47
48        var $return = true;
49        if(!$('.t4-pattern.title').val()){
50            $('.error-title-null').show();
51            $return = false;
52        }else{
53            $('.error-title-null').hide();
54            var title = $('.t4-pattern.title').val();
55            var $cls = title.replace(/\s+/g,"_").toLowerCase();
56            Object.keys(allPalette).forEach(function(cls, idx){
57                if (cls == $cls || allPalette[cls]['title'] == title) {
58                    $('.error-name-exist').show();
59                    $return = false;
60                }
61            });
62        }
63        return $return;
64    }
65    var updateToJson = function(trigger){
66        var AllData = generatedPalettes(true);
67        $('#typelist_theme_styles_palettes').val(JSON.stringify(AllData));
68        $('#typelist_theme_styles_palettes').trigger('change');
69        if(trigger){
70            doSave();
71        }
72    }
73    var doSave = function(trigger){
74        var dataSave = generatedPalettes(trigger);
75        var url = location.pathname + '?option=com_ajax&plugin=t4&format=json&t4do=Palettes&id=' + tempId;
76        $.post(url, {task: 'save',all:trigger,value: dataSave}).then(function(response) {
77            if (response.ok) {
78                T4Admin.Messages(T4Admin.langs.palettesUpdated,'message');
79            } else {
80                T4Admin.Messages(response.error,'error');
81            }
82        });
83    }
84
85    var initPalettePreview = function(name,data){
86        if(name == 'background_color'){
87             $('.pattern-preview').css({background:data.background_color});
88         }else{
89            $('.pattern-preview .'+name).data(name,data[name]);
90            $('.pattern-preview .'+name).css({color:data[name]});
91            if(name.match(/_hover/)){
92                $('.pattern-preview .'+name.replace(/_hover/,"")).data(name,data[name]);
93                $('.pattern-preview .'+name.replace(/_hover/,"")).hover(function(){
94                    var colorArr = $(this).data();
95                    $(this).css("color", colorArr[name]);
96                }, function(){
97                        var colorArr = $(this).data();
98                    $(this).css("color", colorArr[name.replace(/_hover/,"")]);
99                });
100            }
101
102         }
103    }
104    var doRemove = function(el){
105        var $message = 'colorPalettes'+$(el).data('tooltip'), action = $(el).data('action'), plEl = $(el).closest('.pattern'),plName = plEl.data('class'),plDel = $(el).parents('li');
106        var url = location.pathname + '?option=com_ajax&plugin=t4&format=json&t4do=Palettes&id=' + tempId;
107        $.post(url, {task: 'remove',name: plName}).then(function(response) {
108            if (response.ok) {
109                var resData = response.data;
110                var resDataColor = response.datacolor;
111                if(action == 'remove'){
112                    plEl.remove();
113                }else{
114                    console.log(plEl)
115                    var plObj = plEl.find('li');
116                    plObj.each(function(){
117                        var elClass = $(this).find('span').attr('class');
118                        if(elClass){
119                            plEl.data(elClass,resDataColor[elClass]);
120                            if(!resDataColor[elClass]) resDataColor[elClass] = '';
121                            $(this).find('span').css({'background':resDataColor[elClass]})
122                        }
123                    });
124                    plDel.addClass('hidden');
125                }
126                updateToJson();
127                T4Admin.Messages(T4Admin.langs[$message],'message');
128            } else {
129                T4Admin.Messages(response.error,'error');
130            }
131        })
132    }
133    $(document).ready(function() {
134       
135        var createPalette = function(data){
136            let clone = data.clone();
137            let dataColor = data.data();
138            clone.removeClass('pattern-clone');
139            clone.removeClass('hidden');
140            $('.t4-palettes-modal').find('.config_pattern').find('input.t4-pattern').each(function(){
141                // var $data = $(this).data(), $attrName = $data.attrname,$val = $(this).val(),$dataColor = '';
142                var name = $(this).data('attrname'),val = $(this).val();
143                if(name == 'title'){
144                    if(clone.data('class') == ''){
145                        var $classes = val.replace(/\s+/g,"_").toLowerCase();
146                        clone.data('class',$classes);
147                    }
148                    clone.find('.pattern-title').text(val);
149                }else{
150                    clone.find('span.'+name).css({background:val});
151                }
152                clone.data(name,val);
153            });
154            clone.appendTo($('.pattern-list'));
155            //update status action
156            var action_del = clone.find('.pt-color-del');
157            if(action_del.is(":hidden")){
158                action_del.parents('li').removeClass('hidden');
159            }
160        }
161	    $(document).on('click','.pt-color-edit', function(e) {
162            e.preventDefault();
163            var paletteEdit = $(this).closest('.pattern');
164            $('.pattern.active').removeClass('active');
165            paletteEdit.addClass('active');
166            $('.t4-palettes-modal').data('action','edit');
167            initPalettes();
168        });
169        $(document).on('change','.t4-pattern', function(e) {
170            var $data = $(this).data(),attrName = $data.attrname,$val = $data.val,$color = $(this).val();
171            var data_color = {}
172            data_color[attrName] = $color;
173            initPalettePreview(attrName,data_color);
174        });
175
176    	$(document).on('click','.pt-color-create', function(e) {
177
178    	    e.preventDefault();
179            var palettes = $('.pattern-list.t4-theme-palettes');
180            //init user color to chose color
181            var $parentColor = $(this).parents('.add-more-palettes').find('.pattern').clone(true);
182            //update status action
183            var action_del = $parentColor.find('.pt-color-del');
184            if(action_del.is(":hidden")){
185                action_del.parents('li').removeClass('hidden');
186            }
187            action_del.parents('li').html('<a class="pt-color-del" href="#" data-tooltip="Delete" data-action="remove"><i class="fal fa-trash-alt fa-fw"></i></a>');
188            $('.pattern.active').removeClass('active');
189            $parentColor.addClass('hidden active clone');
190            $parentColor.data('class','');
191            $parentColor.appendTo(palettes);
192            $('.t4-palettes-modal').data('action','create');
193            initPalettes();
194            
195    	});
196        $(document).on('click','.pt-color-clone', function(e) {
197            e.preventDefault();
198            var $parentColor = $(this).closest('.pattern'), $patternClone = $parentColor.clone(true), $data = $patternClone.data();
199            var $val = $(this).val(), $name_palette = [];
200            $('.pattern-list').find('.pattern').each(function(){
201                $name_palette.push($(this).data('title'));
202            });
203            $patternClone.removeClass($data.class);
204            var random = '', newTitle = '', title = $data.title;
205            for (var i = 0; i < 100; i++) {
206                random = ' copy '+i;
207                if(i==0) random = ' copy';
208               newTitle = title + random;
209               if($name_palette.indexOf(newTitle) == -1){
210                break;
211               }
212            }
213            $patternClone.addClass($data.class+random.replace(/\s/g,'_'));
214            $patternClone.addClass('clone');
215            $patternClone.data('class','');
216            $patternClone.data('status','loc');
217            $patternClone.find('.pattern-title').text(newTitle);
218            $patternClone.data('title',newTitle);
219            //update status action
220            var action_del = $patternClone.find('.pt-color-del');
221            if(action_del.is(":hidden")){
222                action_del.parents('li').removeClass('hidden');
223            }
224            action_del.parents('li').html('<a class="pt-color-del" href="#" data-tooltip="Delete"  data-action="remove"><i class="fal fa-trash-alt fa-fw"></i></a>');
225            $patternClone.insertAfter($parentColor);
226            $patternClone.find('.pt-color-edit').trigger('click');
227            $('.t4-palettes-modal').data('action','clone');
228        });
229    	$('body').on('click','.t4-patterns-apply', function(e) {
230    	    e.preventDefault();
231            var $plmodal = $('.t4-palettes-modal');
232
233            if(!validationData() && $plmodal.data('action') == 'create'){
234                return false;
235            }
236            var savetofile = false;
237            var patternActive = $('.pattern.active');
238            if(patternActive.hasClass('clone')){
239                patternActive.removeClass('clone');
240                savetofile = true;
241            }
242            console.log($plmodal.data('action'))
243            if(patternActive.hasClass('hidden')){
244                patternActive.removeClass('hidden');
245                patternActive.removeClass('pattern-clone');
246            }
247            var status = patternActive.data('status');
248            if(['ovr','org'].indexOf(status) > -1){
249                patternActive.data('status','ovr');
250            }
251            $plmodal.find('.config_pattern').find('input.t4-pattern').each(function(){
252                // var $data = $(this).data(), $attrName = $data.attrname,$val = $(this).val(),$dataColor = '';
253                var name = $(this).data('attrname'), val = $(this).val();
254
255                if(name == 'title'){
256                    if(patternActive.data('class') == ''){
257                        var $classes = val.replace(/\s+/g,"_").toLowerCase();
258                        patternActive.data('class',$classes);
259                    }
260                    patternActive.find('.pattern-title').text(val);
261                }else{
262                    patternActive.find('span.'+name).css({background:val});
263                }
264                patternActive.data(name,val);
265            });
266
267            $(this).closest('.t4-palettes-modal').hide();
268            updateToJson(savetofile);
269    	});
270        $('body').on('click','.t4-patterns-cancel, .action-t4-modal-close', function(e) {
271            $(this).closest('.t4-palettes-modal').hide();
272            var $pattern = $('.pattern.active'),dataClass = $pattern.data('class');
273            $('.t4-palettes-modal').data('action','');
274            if($pattern.hasClass('clone')){
275                $pattern.remove();
276                $(document).find('.pattern[data-class="'+dataClass+'"]').addClass('active');
277            }
278        });
279		$('body').on('click','.pt-color-del', function(e) {
280            e.stopPropagation();
281    	    e.preventDefault();
282            var that = this;
283            var $langs = 'colorPalettesConfirm'+$(this).data('tooltip');
284            T4Admin.Confirm(T4Admin.langs[$langs],function(ans){
285              if (ans) {
286                doRemove(that);
287              }else {
288                 return false;
289              }
290            },'');
291    	});
292
293        // dont trigger action when click on action group
294        $(document).on('click','.pattern-actions-list', function(e) {
295             e.stopPropagation();
296        });
297	});
298
299})(jQuery);

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.