users can add pictures to their profiles; users can like and dislike videos
[living-lab-site.git] / application / views / video / watch_view.php
index b5f7eea..a775419 100644 (file)
@@ -3,39 +3,46 @@
        siteUrl = '<?php echo site_url() ?>';
 </script>
 
-<div id="body">
-       <?php // Invalid name in URL ?>
-       <?php if (isset($video['err'])):
-               if ($video['err'] == 'INVALID_NAME'):
-                       $suggestion = site_url(sprintf("video/watch/%d/%s", $video['id'], 
-                               $video['name']))
-                       ?>
-                       <p>Invalid URL <em><?php echo current_url() ?></em> .</p>
-                       <p>Did you mean <a href="<?php echo $suggestion ?>">
-                               <?php echo $suggestion ?></a> ?</p>
-               <?php elseif($video['err'] == 'INVALID_ID'): ?>
-                       <p>Invalid ID in URL.</p>
-               <?php endif ?>
-               
-       <?php // Correct URL ?>
-       <?php else: ?>
-               <h1><?php echo $video['title'] ?></h1>
-               
-               <div id="video-widget-tabs">
-                       <ul>
-                               <li>
-                                       <a id="switch-to-ns-html5" href="#video-widget">HTML5</a>
-                               </li>
-                               <li>
-                                       <a id="switch-to-ns-vlc" href="#video-widget">VLC</a>
-                               </li>
-                       </ul>
-                       
-                       <div id="video-widget"></div>
-               </div>
+<div id="main">
+<?php // Invalid name in URL ?>
+<?php if (isset($video['err'])):
+       if ($video['err'] == 'INVALID_NAME'):
+               $suggestion = site_url(sprintf("video/watch/%d/%s", $video['id'], 
+                       $video['name']))
+               ?>
+               <p>Invalid URL <em><?php echo current_url() ?></em> .</p>
+               <p>Did you mean <a href="<?php echo $suggestion ?>">
+                       <?php echo $suggestion ?></a> ?</p>
+       <?php elseif($video['err'] == 'INVALID_ID'): ?>
+               <p>Invalid ID in URL.</p>
+       <?php endif ?>
+       
+<?php // Correct URL ?>
+<?php else: ?>
+       <h1><a href="<?php echo site_url('catalog/category/'. $video['category_name']) ?>"><?php echo $video['category_title'] ?></a> &rsaquo; <?php echo $video['title'] ?></h1>
+       
+       <div id="video-widget-tabs">
+               <ul>
+                       <li>
+                               <a id="switch-to-ns-html5" href="#video-widget">HTML5</a>
+                       </li>
+                       <li>
+                               <a id="switch-to-ns-vlc" href="#video-widget">VLC</a>
+                       </li>
+               </ul>
                
-               <!--TODO user name-->
-               <div id="video-date"><?php echo $video['date'] ?></div>
+               <div id="video-widget"></div>
+       </div>
+       
+       <div id="video-info" style="clear: both">
+       <div id="video-upload-info">
+               <?php echo $this->lang->line('ui_uploaded_by') ?>
+                       <span id="video-date"><a href="<?php echo site_url("user/profile/{$video['username']}") ?>"><?php echo $video['username'] ?></a></span>
+                       <?php echo $this->lang->line('ui_on_date') ?>
+                       <span id="video-date"><?php echo $video['date'] ?></span>
+       </div>
+       
+       <div id="video-popularity">
                <div id="video-views">
                        <?php echo $video['views'] . ' '
                                . ($video['views'] == 1 ? 
                                        $this->lang->line('ui_views') );
                        ?>
                </div>
-               <div id="video-likes">
-                       <?php echo $video['likes'] . ' '
-                               . ($video['likes'] == 1 ? 
-                                       $this->lang->line('ui_like') : 
-                                       $this->lang->line('ui_likes') );
-                       ?>
-               </div>
-               <div id="video-dislikes">
-                       <?php echo $video['dislikes'] . ' '
-                               . ($video['dislikes'] == 1 ? 
-                                       $this->lang->line('ui_dislike') : 
-                                       $this->lang->line('ui_dislikes') );
-                       ?>
-               </div>
-               <div id="video-description"><?php echo $video['description'] ?></div>
-               <div id="video-category">
-                       <?php echo ucwords($this->lang->line('ui_category'))
-                               . ': '. $video['category_title'] ?>
-               </div>
-               <div id="video-tags">
-                       <?php echo ucwords($this->lang->line('ui_tags')). ': ' ?>
-                       <?php if (isset($video['tags'])): 
-                       foreach ($video['tags'] as $tag => $score): ?>
-                       <a href="<?php echo site_url('catalog/search/'. $tag) ?>">
-                               <?php echo "$tag($score)" ?>
-                       </a>
-                       <?php endforeach; endif ?>
-               <div id="video-license">
-                       <?php echo ucwords($this->lang->line('ui_license'))
-                               . ': '. $video['license'] ?>
-               </div>
                
+               <div><!--<a id="link-like" href="#"><?php echo $this->lang->line('video_like') ?></a>
+                       <a id="link-dislike" href="#"><?php echo $this->lang->line('video_dislike') ?></a>-->
+                       <a class="link-vote" data-action="like" href="#"><?php echo $this->lang->line('video_like') ?></a>
+                       <a class="link-vote" data-action="dislike" href="#"><?php echo $this->lang->line('video_dislike') ?></a>
+                       <span id="video-likes"><?php echo $video['likes'] ?></span> <?php
+                               echo $this->lang->line('ui_likes') ?>,
+                       <span id="video-dislikes"><?php echo $video['dislikes'] ?></span> <?php
+                               echo $this->lang->line('ui_dislikes'); ?>
+               </div>
+       </div>
+       
+       <div id="video-description"><?php echo $video['description'] ?></div>
+       
+       <dl id="video-category">
+               <dt><?php echo ucwords($this->lang->line('ui_category'))
+                       . ': ' ?></dt>
+               <dd><?php echo $video['category_title'] ?></dd>
+       </dl>
+       
+       <dl id="video-tags">
+               <dt><?php echo ucwords($this->lang->line('ui_tags')). ': ' ?></dt>
+               <dd><?php if (isset($video['tags'])): 
+               foreach ($video['tags'] as $tag => $score): ?>
+               <a href="<?php echo site_url('catalog/search/'. $tag) ?>" class="video-tag">
+                       <?php echo "$tag " // TODO print score in future ?>
+               </a>
+               <?php endforeach; endif ?></dd>
+       </dl>
+       
+       <dl id="video-license">
+               <dt><?php echo ucwords($this->lang->line('ui_license')).': ' ?></dt>
+               <dd><?php echo $video['license'] ?></dd>
+       </dl>
+       </div>
+       
 
-       <?php endif // if (isset($video['err'])): ?>
+<?php endif // if (isset($video['err'])): ?>
 </div>
 
 <?php // Javascript bindings when document is ready ?>
                });
                
                // Switch video plugin facilities
-               $('#video-widget-tabs').tabs(); /*{
-                       ajaxOptions: {
-                               type: "POST",
-                               data: { url: "<?php //echo $video['url'][0] ?>" },
-                               error: function(xhr, status, index, anchor) {
-                                       $(anchor.hash).html('Could not load the video plugin.');
-                               }
-                       }
-               });*/
+               $('#video-widget-tabs')
+                       .tabs();
                $('#switch-to-ns-html5')
                        .click(function() {
                                $('#video-widget')
                                $('#video-widget')
                                        .nsvideo('type', 'ns-vlc');
                        });
-                       
+               
                // Video widget
-               $('#video-widget').nsvideo({
-                       type: "<?php echo $plugin_type ?>",
-                       definition:
-                               "<?php echo $video['assets'][ $asset_index ]['def'] ?>",
-                       src: {
-                               <?php 
-                                       for ($i=0; $i < count($video['assets']); $i++)
-                                       {
-                                               $asset = $video['assets'][$i];
-                                               echo '"'. $asset['def'] . '": ';
-                                               echo '"'. $asset['src'] . '"'; 
-                                               echo ($i == count($video['assets']) - 1) ? '' : ', ';
-                                       }
-                               ?>
-                       }
-               });
+               $('#video-widget')
+                       .nsvideo({
+                               type: "<?php echo $plugin_type ?>",
+                               src: <?php echo json_encode($video['assets']) ?>,
+
+                               showState: false,
+                               
+                               minWidth: 640,
+                               maxWidth: 1024,
+                               initialDuration: "<?php echo $video['duration'] ?>",
+                               
+                               resize: function() {
+                                       $('#video-widget-tabs')
+                                               .css('width', $('#video-widget').css('width'));
+                               }
+                       });
+               
+               $('.link-vote')
+                       .click(function() {
+                               var user_id = "<?php echo $user_id ?>";
+                               var action, idOutput;
+                               if ($(this).data('action') == 'like')
+                               {
+                                       var action = 'like';
+                                       var idOutput = '#video-likes';
+                               }
+                               else
+                               {
+                                       var action = 'dislike';
+                                       var idOutput = '#video-dislikes';
+                               }
+                               //alert(action + " " + user_id);
+                               
+                               if (user_id.length != 0)
+                               {
+                                       $.ajax({
+                                               type: "GET",
+                                               url: "<?php echo site_url("video/ajax_vote") ?>/"
+                                                       + action
+                                                       + "<?php echo "/{$video['id']}/$user_id" ?>",
+                                               data: {t: ""+Math.random()},
+                                               dataType: "text",
+                                               success: function(text) {
+                                                       if (text)
+                                                               $(idOutput).html(text);
+                                                       else
+                                                               alert('<?php echo $this->lang->line('ui_msg_repeated_action_restriction') ?>');
+                                               }
+                                       });
+                               }
+                               else
+                                       alert('<?php echo $this->lang->line('ui_msg_login_restriction') ?>');
+                       })
+                       .button();
+               
+               $('#link-like')
+                       .click(function() {
+                               user_id = "<?php echo $user_id ?>";
+                               
+                               if (user_id)
+                               {
+                                       $.ajax({
+                                               type: "GET",
+                                               url: "<?php echo site_url("video/ajax_vote/like/{$video['id']}/$user_id") ?>",
+                                               dataType: "text",
+                                               success: function(text) {
+                                                       if (text)
+                                                               $('#video-likes').html(text);
+                                                       else
+                                                               alert('<?php echo $this->lang->line('ui_msg_repeated_action_restriction') ?>');
+                                               }
+                                       });
+                               }
+                               else
+                                       alert('<?php echo $this->lang->line('ui_msg_login_restriction') ?>');
+                       })
+                       .button();
+               $('#link-dislike')
+                       .click(function() {
+                               user_id = "<?php echo $user_id ?>";
+                               
+                               if (user_id)
+                               {
+                                       $.ajax({
+                                               type: "GET",
+                                               url: "<?php echo site_url("video/ajax_vote/dislike/{$video['id']}/$user_id") ?>",
+                                               data: {t: ""+Math.random()},
+                                               dataType: "text",
+                                               success: function(text) {
+                                                       $('#video-dislikes').html(text);
+                                               }
+                                       });
+                               }
+                               else
+                                       alert('<?php echo $this->lang->line('ui_msg_login_restriction') ?>');
+                       })
+                       .button();
        });
 </script>
\ No newline at end of file