PluginProbe
PlayerJS – Free Custom HTML5 Video and Audio Player Builder / 2.21
PlayerJS – Free Custom HTML5 Video and Audio Player Builder v2.21
trunk 2.2 2.21 2.24 2.25
playerjs / admin / playerjs_com_admin.js

playerjs_com_admin.js in PlayerJS – Free Custom HTML5 Video and Audio Player Builder 2.21, at admin/playerjs_com_admin.js

159 lines 6.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var playerjs_com_wyswyg;
2
3 var pjs_edit_selection='';
4
5 var playerjs_com_params = ["file","poster","title","width","height","subtitle","thumbnails"];
6
7 jQuery("#playerjs_com_editor_button").click(function(e) {
8
9 PlayerJScomCurtain();
10 if(jQuery('.playerjs_com_editor_window').length==0){
11 jQuery(document.body).append('<div class="playerjs_com_editor_window"><div class="playerjs_com_editor_logo"></div><div class="playerjs_com_editor_x" onclick="PlayerJScomCurtainX();"></div><div class="playerjs_com_clear"></div></div>');
12 var x = jQuery(".playerjs_com_editor_window");
13 x.append('<p>File<br><input type="text" class="playerjs_com_input" id="playerjs_com_input_file"> &nbsp;<input type="button" class="button" id="playerjs_com_input_file_but" value="Choose"/></p>');
14 x.append('<p>Poster<br><input type="text" class="playerjs_com_input" id="playerjs_com_input_poster"/> &nbsp;<input type="button" class="button" id="playerjs_com_input_poster_but" value="Choose"/></p>');
15
16 x.append('<p id="playerjs_com_p_subtitle" class="playerjs_com_hidden">Subtitles<br><input type="text" class="playerjs_com_input" id="playerjs_com_input_subtitle"/> &nbsp;<input type="button" class="button" id="playerjs_com_input_subtitle_but" value="Choose"/></p>');
17
18 x.append('<p id="playerjs_com_p_thumbnails" class="playerjs_com_hidden">Thumbnails<br><input type="text" class="playerjs_com_input" id="playerjs_com_input_thumbnails"/> &nbsp;<input type="button" class="button" id="playerjs_com_input_thumbnails_but" value="Choose"/></p>');
19
20 x.append('<p id="playerjs_com_more_but"><input type="button" value="Submit" class="button-primary" id="playerjs_com_submit_but" onclick="PlayerJScomSubmit();" /> <span class="playerjs_com_ajax" style="float:right" onclick="PlayerJScomMore();">More options</span></p>');
21
22 x.append('<p id="playerjs_com_less_but" class="playerjs_com_hidden"><input type="button" value="Submit" class="button-primary" id="playerjs_com_submit_but" onclick="PlayerJScomSubmit();" /> <span class="playerjs_com_ajax" style="float:right" onclick="PlayerJScomLess();">Less options</span></p>');
23
24 jQuery("#playerjs_com_input_file_but").on("click",PlayerJScomFileManager);
25 jQuery("#playerjs_com_input_poster_but").on("click",PlayerJScomFileManager);
26 jQuery("#playerjs_com_input_subtitle_but").on("click",PlayerJScomFileManager);
27 jQuery("#playerjs_com_input_thumbnails_but").on("click",PlayerJScomFileManager);
28 }else{
29 for(var i = 0;i<playerjs_com_params.length;i++){
30 jQuery("#playerjs_com_input_"+playerjs_com_params[i]).val('');
31 }
32 jQuery('.playerjs_com_editor_window').show(0);
33 }
34 if(tinymce !== 'undefined'){
35 PlayerJScomSelection();
36 }
37
38 });
39
40 function PlayerJScomMore(){
41 jQuery("#playerjs_com_p_subtitle").show();
42 jQuery("#playerjs_com_p_thumbnails").show();
43 jQuery("#playerjs_com_more_but").hide();
44 jQuery("#playerjs_com_less_but").show();
45 }
46 function PlayerJScomLess(){
47 jQuery("#playerjs_com_input_subtitle").val()==''?jQuery("#playerjs_com_p_subtitle").hide():'';
48 jQuery("#playerjs_com_input_thumbnails").val()==''?jQuery("#playerjs_com_p_thumbnails").hide():'';
49 jQuery("#playerjs_com_more_but").show();
50 jQuery("#playerjs_com_less_but").hide();
51 }
52
53 function PlayerJScomSelection(){
54
55 if(typeof tinymce.activeEditor !== 'undefined' && tinymce.majorVersion >= 4){
56 playerjs_com_wyswyg = tinymce.activeEditor;
57 if(!tinymce.activeEditor.selection.isCollapsed()){
58 var select = jQuery.trim(tinymce.activeEditor.selection.getContent());
59 if(select.indexOf("[playerjs")==0 && select.substr(-1)=="]"){
60 pjs_edit_selection = select;
61 var attributes = PlayerJScomAttributes(select);
62 for(var i = 0;i<playerjs_com_params.length;i++){
63 if(attributes[playerjs_com_params[i]]){
64 jQuery("#playerjs_com_input_"+playerjs_com_params[i]).val(attributes[playerjs_com_params[i]]);
65 jQuery("#playerjs_com_p_"+playerjs_com_params[i]).show();
66 }
67 }
68 }
69 }
70 }
71 /*else{
72 playerjs_com_wyswyg = tinyMCE.getInstanceById('content');
73 }*/
74 }
75
76 function PlayerJScomAttributes(x){
77 var attributes = {};
78 x.match(/[\w-]+=".+?"/g).forEach(function(attribute) {
79 attribute = attribute.match(/([\w-]+)="(.+?)"/);
80 attributes[attribute[1]] = attribute[2];
81 });
82 return attributes;
83 }
84
85 function PlayerJScomCurtain(){
86 if(jQuery('.playerjs_com_curtain').length==0){
87 jQuery("body").append('<div class="playerjs_com_curtain"></div>');
88 jQuery(".playerjs_com_curtain").css("height",jQuery(document).height());
89 jQuery(".playerjs_com_curtain").on("click",PlayerJScomCurtainX);
90 document.body.style.overflow = 'hidden';
91 }
92 }
93 function PlayerJScomCurtainX(){
94 jQuery(".playerjs_com_curtain").remove();
95 document.body.style.overflow = 'auto';
96 jQuery(".playerjs_com_editor_window").hide();
97 }
98
99 var playerjs_com_file_manager;
100
101 function PlayerJScomFileManager(e){
102 e.preventDefault();
103 jQuery('.playerjs_com_manager_input').removeClass('playerjs_com_manager_input');
104 jQuery(this).siblings('input[type=text]').addClass('playerjs_com_manager_input');
105 var target_input = jQuery(this).siblings('input[type=text]');
106
107 if (playerjs_com_file_manager) {
108 playerjs_com_file_manager.open();
109 return;
110 }
111
112 playerjs_com_file_manager = wp.media.frames.file_frame = wp.media({
113 title: 'Media',
114 button: {
115 text: 'Choose'
116 },
117 multiple: false
118 });
119
120 playerjs_com_file_manager.on('open', function() {
121 jQuery('.media-router .media-menu-item').eq(0).click();
122 });
123
124 playerjs_com_file_manager.on('select', function() {
125 attachment = playerjs_com_file_manager.state().get('selection').first().toJSON();
126 jQuery(".playerjs_com_manager_input").val(attachment.url);
127 });
128
129 playerjs_com_file_manager.open();
130 }
131
132
133
134 function PlayerJScomSubmit(){
135 if(jQuery("#playerjs_com_input_file").val()!=''){
136 var code = '[playerjs ';
137
138 for(var i = 0;i<playerjs_com_params.length;i++){
139 var x = jQuery("#playerjs_com_input_"+playerjs_com_params[i]);
140 if(x.length>0){
141 if(x.val()!=''){
142 code += ' '+playerjs_com_params[i]+'="'+x.val()+'"';
143 }
144 }
145 }
146 if(pjs_edit_selection && pjs_edit_selection!=''){
147 var attr = PlayerJScomAttributes(pjs_edit_selection);
148 for(var i in attr){
149 if(playerjs_com_params.indexOf(i)==-1){
150 code += ' '+i+'="'+attr[i]+'"';
151 }
152 }
153 }
154 code += ']';
155 send_to_editor(code);
156 PlayerJScomCurtainX();
157 }
158 }
159